Game Development Wiki
gamedevwiki
https://gamedev.miraheze.org/wiki/Main_Page
MediaWiki 1.40.1
case-sensitive
Media
Special
Talk
User
User talk
Game Development Wiki
Game Development Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Campaign
Campaign talk
Module
Module talk
Tutorial
Tutorial talk
Template:Mbox/styles.css
10
79
196
2022-02-08T04:13:27Z
meta>Agent Isai
0
Imported from [[mw:|MediaWiki.org]]
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
70a64e18a5edf35b8f5debf06fbf0ed6bfa91d31
Template:Documentation
10
14
31
2022-09-30T01:43:37Z
dev>MacFan4000
0
4 revisions imported from [[:meta:Template:Documentation]]: this is useful and was on templateiwki
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
32
31
2023-02-08T01:57:06Z
BlindCartographer
2
1 revision imported from [[:dev:Template:Documentation]]
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
49
32
2023-02-08T02:01:22Z
BlindCartographer
2
wikitext
text/x-wiki
{{#invoke:Documentation|main|_content={{ {{#invoke:Documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
239460698a2505ac439e481dbadc3613935a1b0e
Module:Arguments
828
16
35
2022-09-30T02:32:01Z
dev>Pppery
0
24 revisions imported from [[:wikipedia:Module:Arguments]]
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
36
35
2023-02-08T01:57:41Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Arguments]]
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Documentation
828
22
47
2022-09-30T02:36:08Z
dev>Pppery
0
Pppery moved page [[Module:Documentation/2]] to [[Module:Documentation]] without leaving a redirect
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
48
47
2023-02-08T01:59:49Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Documentation]]
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
Module:Yesno
828
18
39
2022-10-01T17:25:37Z
dev>Pppery
0
Pppery moved page [[Module:Yesno/2]] to [[Module:Yesno]] without leaving a redirect
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
40
39
2023-02-08T01:58:59Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Yesno]]
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Module:No globals
828
17
37
2022-10-01T17:28:48Z
dev>Pppery
0
Pppery moved page [[Module:No globals/2]] to [[Module:No globals]] without leaving a redirect
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
38
37
2023-02-08T01:58:47Z
BlindCartographer
2
1 revision imported from [[:dev:Module:No_globals]]
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Documentation/config
828
21
45
2022-10-01T17:37:53Z
dev>Pppery
0
Pppery moved page [[Module:Documentation/config/2]] to [[Module:Documentation/config]] without leaving a redirect
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
46
45
2023-02-08T01:59:36Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Documentation/config]]
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
Module:Message box
828
15
33
2022-10-21T19:39:49Z
dev>Pppery
0
These can just go, the first for being very Wikipedia-specific, and the second for being almost impossible to import properly
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
127
33
2022-10-23T04:26:44Z
wikipedia>Legoktm
0
Replace [[Module:No globals]] with require( "strict" )
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
bdb0ecc9f26f26b9c0ce12a066a183ac9d4f0705
34
33
2023-02-08T01:57:25Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Message_box]]
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
Module:Message box/configuration
828
19
41
2022-10-21T22:38:02Z
dev>Pppery
0
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
42
41
2023-02-08T01:59:10Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Message_box/configuration]]
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
Template:Mbox
10
59
125
2022-12-18T05:46:16Z
wikipedia>TadejM
0
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
5bfb2becf8bed35974b47e3ff8660dc14bee40c7
Module:Documentation/styles.css
828
20
43
2023-01-16T23:40:04Z
dev>Pppery
0
sanitized-css
text/css
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
44
43
2023-02-08T01:59:22Z
BlindCartographer
2
1 revision imported from [[:dev:Module:Documentation/styles.css]]
sanitized-css
text/css
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
Main Page
0
1
1
2023-02-07T11:40:22Z
MediaWiki default
1
Create main page
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
8
1
2023-02-07T22:33:57Z
BlindCartographer
2
Protected "[[Main Page]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
File:Gamedevwiki.png
6
2
2
2023-02-07T21:47:06Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
3
2
2023-02-07T21:57:49Z
BlindCartographer
2
BlindCartographer uploaded a new version of [[File:Gamedevwiki.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
4
3
2023-02-07T22:04:10Z
BlindCartographer
2
Protected "[[File:Gamedevwiki.png]]": Major to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Favicon.ico
6
3
5
2023-02-07T22:06:21Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
6
5
2023-02-07T22:17:11Z
BlindCartographer
2
Protected "[[File:Favicon.ico]]": Major to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Site-Logo.png
6
4
7
2023-02-07T22:31:11Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
9
7
2023-02-07T22:37:42Z
BlindCartographer
2
Protected "[[File:Site-Logo.png]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
User:BlindCartographer
2
5
10
2023-02-07T22:41:29Z
BlindCartographer
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
11
10
2023-02-07T23:17:46Z
BlindCartographer
2
Protected "[[User:BlindCartographer]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
17
11
2023-02-08T01:20:27Z
BlindCartographer
2
wikitext
text/x-wiki
Hey, I'm BlindCartographer
6d2bf48f163dbd7b873ee1d27a71b166db4249e8
Template:Nbox
10
6
12
2023-02-08T01:02:16Z
BlindCartographer
2
Created page with "{| style="width: 100% !important;" |- | style="border: 4px solid {{{border|#6F6F6F}}}; border-radius 3px; background-color: {{{background|#F6F6F6}}}; padding: 10px 15px;" | {{{header|}}} {{{text|}}} |- |} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{| style="width: 100% !important;"
|-
| style="border: 4px solid {{{border|#6F6F6F}}}; border-radius 3px; background-color: {{{background|#F6F6F6}}}; padding: 10px 15px;" | {{{header|}}}
{{{text|}}}
|-
|}
<noinclude>{{Documentation}}</noinclude>
8d2b746af9b0361d6ad2eb27e0185e3dfe93f574
13
12
2023-02-08T01:02:35Z
BlindCartographer
2
Protected "[[Template:Nbox]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{| style="width: 100% !important;"
|-
| style="border: 4px solid {{{border|#6F6F6F}}}; border-radius 3px; background-color: {{{background|#F6F6F6}}}; padding: 10px 15px;" | {{{header|}}}
{{{text|}}}
|-
|}
<noinclude>{{Documentation}}</noinclude>
8d2b746af9b0361d6ad2eb27e0185e3dfe93f574
15
13
2023-02-08T01:09:35Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="width: 100% !important;"
|-
| style="border: 4px solid {{{border|#6F6F6F}}}; border-radius: 5px; background-color: {{{background|#F6F6F6}}}; padding: 10px 15px;" | {{{header|}}}
{{{text|}}}
|-
|}
<noinclude>{{Documentation}}</noinclude>
bbc2344f8e906bb5b47c72b9852a914fcb6bca52
24
15
2023-02-08T01:29:42Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="width: 100% !important;"
|-
| style="border: 4px solid {{{border|#6F6F6F}}}; border-radius: 5px; background-color: {{{background|#F6F6F6}}}; padding: 10px 15px;" | {{{header|}}}
{{{text|}}}
|-
|}
e8ed1fcec69071cfdec08af6aa36a6fa6d9d3497
Template:MP-Header
10
7
14
2023-02-08T01:05:51Z
BlindCartographer
2
Created page with "{{Nbox |header=<center><span style="font-size:25px;>'''Game Development Wiki'''</span></center> |text=<div align=center>[[File:Site-Logo.png|50px|link=Game Development Wiki:About]]</div><center><big>{{NUMBEROFARTICLES}} articles • {{NUMBEROFEDITS}} edits • {{NUMBEROFFILES}} files • {{NUMBEROFUSERS}} users</big></center> }}"
wikitext
text/x-wiki
{{Nbox
|header=<center><span style="font-size:25px;>'''Game Development Wiki'''</span></center>
|text=<div align=center>[[File:Site-Logo.png|50px|link=Game Development Wiki:About]]</div><center><big>{{NUMBEROFARTICLES}} articles • {{NUMBEROFEDITS}} edits • {{NUMBEROFFILES}} files • {{NUMBEROFUSERS}} users</big></center>
}}
cf8cad6a46755cd68111d09a4a2fd63baa9b7888
16
14
2023-02-08T01:10:45Z
BlindCartographer
2
Protected "[[Template:MP-Header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<center><span style="font-size:25px;>'''Game Development Wiki'''</span></center>
|text=<div align=center>[[File:Site-Logo.png|50px|link=Game Development Wiki:About]]</div><center><big>{{NUMBEROFARTICLES}} articles • {{NUMBEROFEDITS}} edits • {{NUMBEROFFILES}} files • {{NUMBEROFUSERS}} users</big></center>
}}
cf8cad6a46755cd68111d09a4a2fd63baa9b7888
Template:Note
10
11
25
2023-02-08T01:31:46Z
BlindCartographer
2
Created page with "<onlyinclude>{{#if: {{#if:{{{1|{{{text|}}}}}}|{{{1|{{{text|}}}}}}|{{#if:<noinclude>demo</noinclude>|demo|{{{demo|}}}}} }} | <div role="note" class="note note-{{#switch: {{{2|{{{type|}}}}}} |gotcha=error |=info |#default={{{2|{{{type|}}}}}} }} {{#ifeq:{{{inline|}}}|1|note-inline}}">{{{1|{{{text}}}}}}</div> }}<!-- --></onlyinclude>"
wikitext
text/x-wiki
<onlyinclude>{{#if: {{#if:{{{1|{{{text|}}}}}}|{{{1|{{{text|}}}}}}|{{#if:<noinclude>demo</noinclude>|demo|{{{demo|}}}}} }} | <div role="note" class="note note-{{#switch: {{{2|{{{type|}}}}}}
|gotcha=error
|=info
|#default={{{2|{{{type|}}}}}}
}} {{#ifeq:{{{inline|}}}|1|note-inline}}">{{{1|{{{text}}}}}}</div>
}}<!--
--></onlyinclude>
665aaea4f05dd43ccaa3ff4a306ccaf8cb1d82c0
54
25
2023-02-08T02:09:15Z
BlindCartographer
2
wikitext
text/x-wiki
<templatestyles src="Template:Note/style.css" />
<onlyinclude>{{#if: {{#if:{{{1|{{{text|}}}}}}|{{{1|{{{text|}}}}}}|{{#if:<noinclude>demo</noinclude>|demo|{{{demo|}}}}} }} | <div role="note" class="note note-{{#switch: {{{2|{{{type|}}}}}}
|gotcha=error
|=info
|#default={{{2|{{{type|}}}}}}
}} {{#ifeq:{{{inline|}}}|1|note-inline}}">{{{1|{{{text}}}}}}</div>
}}<!--
--></onlyinclude>
d14049394ab80394305561f4de7a8bba0bc96c44
Template:Note/styles.css
10
12
26
2023-02-08T01:34:30Z
BlindCartographer
2
Created page with "/** Note Template Styling **/ .note { background-position: left 7px top 50%; padding: 0.5em 0.5em 0.5em 40px; margin: 0.5em 0; overflow: hidden; background-color: #f8f9fa; background-repeat: no-repeat; border: 1px solid #ddd; } .note-inline { display: inline-block; vertical-align: middle; } .note-info { background-color: #f6efe5; background-image: url(https://upload.wikimedia.org/wikipedia/commons/d/d5/OOjs_UI_icon_reference_20_ac6600.svg); background-size: 2..."
sanitized-css
text/css
/** Note Template Styling **/
.note {
background-position: left 7px top 50%;
padding: 0.5em 0.5em 0.5em 40px;
margin: 0.5em 0;
overflow: hidden;
background-color: #f8f9fa;
background-repeat: no-repeat;
border: 1px solid #ddd;
}
.note-inline {
display: inline-block;
vertical-align: middle;
}
.note-info {
background-color: #f6efe5;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/d/d5/OOjs_UI_icon_reference_20_ac6600.svg);
background-size: 25px;
border-color: #ac6600;
padding-left: 40px;
min-height: 28px;
}
.note-reminder {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-warn {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-error {
background-color: #fee7e6;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg);
background-size: 25px;
border-color: #c33;
min-height: 28px;
}
fe0d3d43e528b234ee8c08115d9315f01b94b482
27
26
2023-02-08T01:34:53Z
BlindCartographer
2
Protected "[[Template:Note/styles.css]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
sanitized-css
text/css
/** Note Template Styling **/
.note {
background-position: left 7px top 50%;
padding: 0.5em 0.5em 0.5em 40px;
margin: 0.5em 0;
overflow: hidden;
background-color: #f8f9fa;
background-repeat: no-repeat;
border: 1px solid #ddd;
}
.note-inline {
display: inline-block;
vertical-align: middle;
}
.note-info {
background-color: #f6efe5;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/d/d5/OOjs_UI_icon_reference_20_ac6600.svg);
background-size: 25px;
border-color: #ac6600;
padding-left: 40px;
min-height: 28px;
}
.note-reminder {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-warn {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-error {
background-color: #fee7e6;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg);
background-size: 25px;
border-color: #c33;
min-height: 28px;
}
fe0d3d43e528b234ee8c08115d9315f01b94b482
28
27
2023-02-08T01:37:29Z
BlindCartographer
2
BlindCartographer moved page [[Template:Note/styles.css]] to [[Template:Note/style.css]] without leaving a redirect
sanitized-css
text/css
/** Note Template Styling **/
.note {
background-position: left 7px top 50%;
padding: 0.5em 0.5em 0.5em 40px;
margin: 0.5em 0;
overflow: hidden;
background-color: #f8f9fa;
background-repeat: no-repeat;
border: 1px solid #ddd;
}
.note-inline {
display: inline-block;
vertical-align: middle;
}
.note-info {
background-color: #f6efe5;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/d/d5/OOjs_UI_icon_reference_20_ac6600.svg);
background-size: 25px;
border-color: #ac6600;
padding-left: 40px;
min-height: 28px;
}
.note-reminder {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-warn {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-error {
background-color: #fee7e6;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg);
background-size: 25px;
border-color: #c33;
min-height: 28px;
}
fe0d3d43e528b234ee8c08115d9315f01b94b482
Template:Mbox/doc
10
23
52
2023-02-08T02:05:12Z
BlindCartographer
2
Created page with "{{tl|mbox}} stands '''m'''essage '''box''', which is a metatemplate used to build message boxes for other templates. It offers several different colours, images and some other features. ==Basic usage== The box below shows the most common parameters that are accepted by {{Tl|mbox}}. The purpose of each is described below. <pre style="overflow:auto;"> {{mbox | name = | small = {{{small|}}} | type = | image = | sect = {{{1|}}} | issue = | talk = {{{talk|}}} | fix..."
wikitext
text/x-wiki
{{tl|mbox}} stands '''m'''essage '''box''', which is a metatemplate used to build message boxes for other templates. It offers several different colours, images and some other features.
==Basic usage==
The box below shows the most common parameters that are accepted by {{Tl|mbox}}. The purpose of each is described below.
<pre style="overflow:auto;">
{{mbox
| name =
| small = {{{small|}}}
| type =
| image =
| sect = {{{1|}}}
| issue =
| talk = {{{talk|}}}
| fix =
| date = {{{date|}}}
| cat =
| all =
}}
</pre>
==Full usage==
The "All parameters" box shows all possible parameters for this template. However, it is not recommended to copy this, because it will never be required to use all parameters simultaneously.
{| class="wikitable" align="left" style="background:transparent; width=30%;"
!All parameters
|-
|<pre style="font-size:100%">
{{mbox
| name =
| small = {{{small|}}}
| type =
| image =
| imageright =
| smallimage =
| smallimageright =
| class =
| style =
| textstyle =
| sect = {{{1|}}}
| issue =
| talk = {{{talk|}}}
| fix =
| date = {{{date|}}}
| text =
| smalltext =
| plainlinks = no
| removalnotice =
| cat =
| all =
| cat2 =
| all2 =
| cat3 =
| all3 =
}}
</pre>
|}
{{clear}}
==Common parameters==
=== ''name'' ===
The ''name'' parameter specifies the name of the template, without the Template namespace prefix. For example [[w:Template:Underlinked]] specifies {{Para|name|Underlinked}}.
This parameter should be updated if the template is ever moved. The purpose of this parameter is to allow the template to have a more useful display on its template page, for example to show the date even when not specified, and to apply categorisation of the template itself.
=== ''small'' ===
The ''small'' parameter should be passed through the template, as this will allow editors to use the small format by specifying {{para|small|left}} on an article:
{{mbox|nocat=true|small=left|text=This is the small left-aligned mbox format.}}
Otherwise the standard format will be produced:
{{mbox|nocat=true|text=This is the standard mbox format.}}
Other variations:
* For templates which should ''never'' be small, specify {{Para|small|no}} or do not pass the small parameter at all.
* For templates which should ''always'' be small, just specify {{Para|small|left}}.
* For templates which should ''default to small'', try {{para|small|<nowiki>{{{small|left}}}</nowiki>}}. This will allow an editor to override by using {{para|small|no}} on an article.
To use a small box that adjusts its width to match the text, use {{para|style|width: auto; margin-right: 0px;}} and {{para|textstyle|width: auto;}} together:
{{mbox|nocat=true|small=left|style=width: auto; margin-right: 0px;|textstyle=width: auto; margin-right: 0px;|text=This is the small left-aligned Ambox format with flexible width.}}
See [[#Sect]] below for more information on how to limit {{para|small}} display to cases when the template is being used for a section instead of the whole article (recommended, to prevent inconsistent top-of-article display).
=== ''type'' ===
The ''type'' parameter defines the colour of the left bar, and the image that is used by default. The type is chosen not on aesthetics but is based on the type of issue that the template describes. The seven available types and their default images are shown below.
{{mbox
|nocat=true
| type = speedy
| text = type=<u>speedy</u> – Speedy deletion issues
}}
{{mbox
|nocat=true
| type = delete
| text = type=<u>delete</u> – Deletion issues,
}}
{{mbox
|nocat=true
| type = content
| text = type=<u>content</u> – Content issues
}}
{{mbox
|nocat=true
| type = style
| text = type=<u>style</u> – Style issues
}}
{{mbox
|nocat=true
| type = notice
| text = type=<u>notice</u> – Article notices
{{mbox
|nocat=true
| type = move
| text = type=<u>move</u> – Merge, split and transwiki proposals
}}
{{mbox
|nocat=true
| type = protection
| text = type=<u>protection</u> – Protection notices,
}}
If no ''type'' parameter is given the template defaults to {{para|type|notice}}.
=== ''image'' ===
You can choose a specific image to use for the template by using the ''image'' parameter. Images are specified using the standard syntax for inserting files. Widths of 40-50px are typical.
Please note:
* If no image is specified then the default image corresponding to the ''type'' is used. (See [[#type]] above.)
* If {{para|image|none}} is specified, then no image is used and the text uses the whole message box area.
=== ''sect'' ===
Many message templates begin with the text '''This article ...''' and it is often desirable that this wording change to '''This section ...''' if the template is used on a section instead. The value of this parameter will replace the word "article". Various possibilities for use include: {{para|sect|list}}, {{para|sect|table}}, {{para|sect|"In popular culture" material}}, etc.
If using this feature, be sure to remove the first two words ("This article") from the template's text, otherwise it will be duplicated.
A common way to facilitate this functionality is to pass {{para|sect|<nowiki>{{{1|}}}</nowiki>}}. This will allow editors to type <kbd>section</kbd>, for example, as the first unnamed parameter of the template to change the wording. Another approach is to pass {{para|sect|<nowiki>{{{section|{{{sect|}}}}}}</nowiki>}} to provide a named value.
=== ''issue'' and ''fix'' ===
The ''issue'' parameter is used to describe the issue with the page. Try to keep it short and to-the-point (approximately 10-20 words).
The ''fix'' parameter contains some text which describes what should be done to improve the page. It may be longer than the text in ''issue'', but should not usually be more than two sentences.
When the template is in its small form (when using {{para|small|left}}), the ''issue'' is the only text that will be displayed. For example [[w:Template:Citation style]] defines
When used stand-alone it produces the whole text:
But when used with |small=left it displays only the issue:
=== ''talk'' ===
Some message templates include a link to the talk page, and allow an editor to specify a section heading to link directly to the relevant section. To achieve this functionality, simply pass the ''talk'' parameter through, i.e. talk=<nowiki>{{{talk|}}}</nowiki>
This parameter may then be used by an editor as follows:
* talk=SECTION HEADING – the link will point to the specified section on the article's talk page, e.g. talk=Foo.
* talk=FULL PAGE NAME – the template will link to the page specified (which may include a section anchor), e.g. talk=Talk:Banana#Foo
Notes:
* When this parameter is used by a template, the talk page link will appear on the template itself (in order to demonstrate the functionality) but this will only display on articles if the parameter is actually defined.
* In order to make sure there is always a link to the talk page, you can use |talk=<nowiki>{{{talk|#}}}</nowiki>.
* If the talk page does not exist, there will be no link, whatever the value of the parameter.
=== ''date'' ===
Passing the ''date'' parameter through to the meta-template means that the date that the article is tagged may be specified by an editor (or more commonly a bot). This will be displayed after the message in a smaller font.
Passing this parameter also enables monthly cleanup categorisation when the ''cat'' parameter is also defined.
=== ''info'' ===
This parameter is for specifying additional information. Whatever you add here will appear after the date.
=== ''cat'' ===
This parameter defines a monthly cleanup category. If |cat=CATEGORY then:
* articles will be placed in '''Category:CATEGORY from DATE''' if |date=DATE is specified.
* articles will be placed in '''Category:CATEGORY''' if the date is not specified.
For example, [[w:Template:No footnotes]] specifies |cat=Articles lacking in-text citations and so an article with the template {{Tlx|No footnotes|2=date=June 2010|SISTER=w:}} will be placed in [[w:Category:Articles lacking in-text citations from June 2010]].
The ''cat'' parameter should not be linked, nor should the prefix <code>Category:</code> be used.
=== ''all'' ===
The ''all'' parameter defines a category into which all articles should be placed.
The ''all'' parameter should not be linked, nor should the prefix <code>Category:</code> be used.
== Additional parameters ==
=== ''imageright'' ===
An image on the right side of the message box may be specified using this parameter. The syntax is the same as for the ''image'' parameter, except that the default is no image.
=== ''smallimage'' and ''smallimageright'' ===
Images for the small format box may be specified using these parameters. They will have no effect unless {{para|small|left}} is specified.
=== ''class'' ===
Custom [[w:Cascading Style Sheets|CSS]] classes to apply to the box. If adding multiple classes, they should be space-separated.
=== ''style'' and ''textstyle'' ===
Optional CSS values may be defined, without quotation marks <code>" "</code> but with the ending semicolons <code>;</code>.
* ''style'' specifies the style used by the entire message box table. This can be used to do things such as modifying the width of the box.
* ''textstyle'' relates to the text cell.
=== ''text'' and ''smalltext'' ===
Instead of specifying the ''issue'' and the ''fix'' it is possible to use the ''text'' parameter instead.
Customised text for the small format can be defined using ''smalltext''.
=== ''plainlinks'' ===
Normally on Wikipedia, external links have an arrow icon next to them, like this: [http://www.example.com Example.com]. However, in message boxes, the arrow icon is suppressed by default, like this: <span class="plainlinks">[http://www.example.com Example.com]</span>. To get the normal style of external link with the arrow icon, use {{para|plainlinks|no}}.
=== ''cat2'', ''cat3'', ''all2'', and ''all3'' ===
* ''cat2'' and ''cat3'' provide for additional monthly categories; see [[#cat]].
* ''all2'' and ''all3'' provide for additional categories into which all articles are placed, just like [[#all]].
== Technical notes ==
* If you need to use special characters in the text parameter then you need to escape them like this:
<syntaxhighlight lang="xml">
{{mbox
|nocat=true
| text = <div>
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe | and two end braces <nowiki>}}</nowiki>.
And now a pipe and end braces <nowiki>|}}</nowiki>.
</div>
}}
</syntaxhighlight>
{{mbox
|nocat=true
| text = <div>
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe | and two end braces <nowiki>}}</nowiki>.
And now a pipe and end braces <nowiki>|}}</nowiki>.
</div>
}}
* The <code><div></code> tags that surround the text in the example above are usually not needed. But if the text contains line breaks then sometimes we get weird line spacing. This especially happens when using vertical dotted lists. Then use the div tags to fix that.
* The default images for this meta-template are in png format instead of svg format. The main reason is that some older web browsers have trouble with the transparent background that MediaWiki renders for svg images. The png images here have hand optimised transparent background colour so they look good in all browsers. Note that svg icons only look somewhat bad in the old browsers, thus such hand optimisation is only worth the trouble for very widely used icons.
== TemplateData ==
<templatedata>
{
"params": {
"1": {},
"small": {
"label": "Small Mode",
"description": "The small parameter should be passed through the template, as this will allow editors to use the small format by specifying |small=left on an article.",
"type": "string",
"suggestedvalues": [
"no",
"left"
]
},
"talk": {},
"date": {},
"name": {
"label": "Template Name",
"description": "The name parameter specifies the name of the template, without the Template namespace prefix. ",
"type": "string"
},
"type": {},
"image": {},
"sect": {},
"issue": {},
"fix": {},
"info": {},
"cat": {},
"all": {},
"imageright": {},
"class": {},
"text ": {},
"plainlinks": {},
"smallimage ": {},
"smallimageright": {},
"textstyle": {},
"style ": {},
"smalltext": {},
"cat2": {},
"cat3": {},
"all2": {},
"all3": {}
},
"paramOrder": [
"name",
"small",
"type",
"image",
"sect",
"issue",
"fix",
"talk",
"date",
"1",
"info",
"cat",
"all",
"imageright",
"class",
"text ",
"plainlinks",
"smallimage ",
"smallimageright",
"textstyle",
"style ",
"smalltext",
"cat2",
"cat3",
"all2",
"all3"
]
}
</templatedata>
<includeonly>[[Category:Notice templates]]</includeonly>
485ccdb51212c23c077b80fd07fc9251a93b5d28
53
52
2023-02-08T02:06:24Z
BlindCartographer
2
Blanked the page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Notice
10
24
55
2023-02-08T02:33:33Z
BlindCartographer
2
Created page with "<div id="{{{id|}}}" style="font-size: 20px; line-height: 160%; width: 100%; padding: 8px 16px 8px; margin-bottom: 5px; box-sizing: border-box; background: #7b7b7b3b; {{{style|}}}; "> <div style="float: left; width: 55px; padding-top: 8px;text-align:center;"> {{{image|<span style="font-size:40px;">ℹ️️</span>}}} </div> <div style="padding-left: 75px;">'''{{{type|Header}}}'''<div style="margin-top:8px;height: 5px; width: 200px; background: {{#switch:{{{border|}}} |..."
wikitext
text/x-wiki
<div id="{{{id|}}}" style="font-size: 20px; line-height: 160%; width: 100%; padding: 8px 16px 8px; margin-bottom: 5px; box-sizing: border-box; background: #7b7b7b3b; {{{style|}}}; ">
<div style="float: left; width: 55px; padding-top: 8px;text-align:center;">
{{{image|<span style="font-size:40px;">ℹ️️</span>}}}
</div>
<div style="padding-left: 75px;">'''{{{type|Header}}}'''<div style="margin-top:8px;height: 5px; width: 200px; background: {{#switch:{{{border|}}}
| red = #ed1c24
| orange = #ff7f26
| yellow = #ffd000
| purple = #c819ad
| blue = #00b7e0
| green = #94d11f
| gray = #8a8a8a
| #default = #8a8a8a
}};"></div>
<div style="font-size: 14px; margin-top: 12px; line-height: 160%">{{{info|Notice text}}}</div>
</div>
</div><noinclude>
16825ff685c58d7b1a4d585bb4f4b0fdc96939ee
MediaWiki:Sidebar
8
25
56
2023-02-08T02:36:38Z
BlindCartographer
2
Created page with " * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES * Test ** Special:CretePage|Create a Page"
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
* Test
** Special:CretePage|Create a Page
d374b5221bb48d11462657598f2675d48c9708a9
57
56
2023-02-08T02:38:01Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
* Test
** Special:WikiForum|Forums
0fd68e31e3820b94d7b56b9a7d950546b1b9ad0b
MediaWiki:Sidebar
8
25
58
57
2023-02-08T02:38:38Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
f3bf4656b14f3243e5c7dbe79c2564f871cea02d
Template:Notice
10
24
59
55
2023-02-08T02:39:02Z
BlindCartographer
2
Protected "[[Template:Notice]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div id="{{{id|}}}" style="font-size: 20px; line-height: 160%; width: 100%; padding: 8px 16px 8px; margin-bottom: 5px; box-sizing: border-box; background: #7b7b7b3b; {{{style|}}}; ">
<div style="float: left; width: 55px; padding-top: 8px;text-align:center;">
{{{image|<span style="font-size:40px;">ℹ️️</span>}}}
</div>
<div style="padding-left: 75px;">'''{{{type|Header}}}'''<div style="margin-top:8px;height: 5px; width: 200px; background: {{#switch:{{{border|}}}
| red = #ed1c24
| orange = #ff7f26
| yellow = #ffd000
| purple = #c819ad
| blue = #00b7e0
| green = #94d11f
| gray = #8a8a8a
| #default = #8a8a8a
}};"></div>
<div style="font-size: 14px; margin-top: 12px; line-height: 160%">{{{info|Notice text}}}</div>
</div>
</div><noinclude>
16825ff685c58d7b1a4d585bb4f4b0fdc96939ee
File:Information icon4.png
6
26
60
2023-02-08T02:47:00Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Ambox warning.png
6
27
61
2023-02-08T02:47:41Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
62
61
2023-02-08T02:48:25Z
BlindCartographer
2
BlindCartographer moved page [[File:Ambox warning pn.svg.png]] to [[File:Ambox warning.png]] without leaving a redirect
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Ambox important.webp
6
28
63
2023-02-08T02:48:57Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Ambox important red.png
6
29
64
2023-02-08T02:50:05Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
65
64
2023-02-08T02:50:57Z
BlindCartographer
2
BlindCartographer moved page [[File:Ambox important red.svg.png]] to [[File:Ambox important red.png]] without leaving a redirect
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Ambox question.png
6
30
66
2023-02-08T02:51:58Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Wikipedia-emblem.png
6
31
67
2023-02-08T02:52:31Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Essay.png
6
32
68
2023-02-08T02:53:33Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
69
68
2023-02-08T02:55:30Z
BlindCartographer
2
BlindCartographer moved page [[File:Essay.svg.png]] to [[File:Essay.png]] without leaving a redirect
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Cabinet.webp
6
33
70
2023-02-08T02:55:53Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Ambox stop.webp
6
34
71
2023-02-08T02:56:34Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Abusefilter-intro
8
35
73
2023-02-08T03:30:34Z
BlindCartographer
2
Created page with "Welcome to the Abuse Filter management interface. The Abuse Filter is an automated software mechanism of applying automatic heuristics to all actions. This interface shows a list of defined filters, and allows them to be modified. Using the Abuse Filter, authorized users can configure a wide range of tests, which may help identify and prevent potentially harmful edits and other activities before they are added to the wiki, and the automatic actions to be taken. Importa..."
wikitext
text/x-wiki
Welcome to the Abuse Filter management interface. The Abuse Filter is an automated software mechanism of applying automatic heuristics to all actions. This interface shows a list of defined filters, and allows them to be modified.
Using the Abuse Filter, authorized users can configure a wide range of tests, which may help identify and prevent potentially harmful edits and other activities before they are added to the wiki, and the automatic actions to be taken.
Important:
* Make sure you are familiar with the [[GDW:P|wiki rules and policies]].
* Keep an eye on the log.
* Check for any false positives.
* Use the test filters before creating it individually.
{{Mbox
|border color=#F28500
|image=[[File:Ambox important.webp|45px|link=]]
|header=Please be careful when modifying an abuse filter.
|text=Even a single typo can potentially disrupt the editing of thousands of legitimate contributors. It is strongly recommended that you test your filters first before you enable any actions. If you are not sure about something, please ask for help.
----
|comment=If you cause problems, you may have your abuse filter editor permission revoked.
}}
cbbd62288367120ef385a64ca8238ebc6f96ca61
95
73
2023-02-08T14:52:29Z
BlindCartographer
2
wikitext
text/x-wiki
Welcome to the Abuse Filter management interface. The Abuse Filter is an automated software mechanism of applying automatic heuristics to all actions. This interface shows a list of defined filters, and allows them to be modified.
Using the Abuse Filter, authorized users can configure a wide range of tests, which may help identify and prevent potentially harmful edits and other activities before they are added to the wiki, and the automatic actions to be taken.
Important:
* Make sure you are familiar with the [[GDW:P|wiki rules and policies]].
* Keep an eye on the log.
* Check for any false positives.
* Use the test filters before creating it individually.
{{Ombox
|border color=#F28500
|image=[[File:Ambox important.webp|45px|link=]]
|header=Please be careful when modifying an abuse filter.
|text=Even a single typo can potentially disrupt the editing of thousands of legitimate contributors. It is strongly recommended that you test your filters first before you enable any actions. If you are not sure about something, please ask for help.
----
|comment=If you cause problems, you may have your abuse filter editor permission revoked.
}}
4c0b1047eab1b0cabcc7f4ff7ed7308f32b57a0d
MediaWiki:Common.css
8
37
75
2023-02-08T03:36:20Z
BlindCartographer
2
Created page with "/* CSS placed here will be applied to all skins */ @import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');"
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
103777b0e2eca6c9fbbc145251fc3f6c5b0c546d
81
75
2023-02-08T03:56:25Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Main Page Styling */
#mp-left {
background: #f5fffa;
border-color: #cef2e0;
}
#mp-left .mp-h2 {
background: #cef2e0;
border-color: #a3bfb1;
}
#mp-right {
background: #f5faff;
border-color: #cedff2;
}
#mp-right .mp-h2 {
background: #cedff2;
border-color: #a3b0bf;
}
#mp-middle {
background: #fff5fa;
border-color: #f2cedd;
}
e87beffd8e1b31becf11a09a66c8004aef4631ea
82
81
2023-02-08T03:58:01Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Main Page Styling */
#mp-left {
align: left !important
}
#mp-right {
align: right !important
}
8e013ee03d14cf5eb40b04d4d0e1c3dc47a8312a
94
82
2023-02-08T14:39:50Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
70ef571e1cca897115cb585fbdd318bf6bc17421
Template:MP-Main
10
38
76
2023-02-08T03:43:16Z
BlindCartographer
2
Created page with "{{Nbox |border=#2C670F |background=#F8FFF5 |header=<div style="font-size:180%; font-family: Righteous">'''Welcome to the Game Development Wiki!'''</div> |text=The '''Game Development Wiki''' (better known as the '''Gamedev wiki''') is a collaborative encyclopedia used to store and collect knowledge about the past, present, and future of game development. Even you can contribute to it. Before starting, please read the [[GDW:P|Rules]] and [[GDW:EM|Editing Manual]]. Thank..."
wikitext
text/x-wiki
{{Nbox
|border=#2C670F
|background=#F8FFF5
|header=<div style="font-size:180%; font-family: Righteous">'''Welcome to the Game Development Wiki!'''</div>
|text=The '''Game Development Wiki''' (better known as the '''Gamedev wiki''') is a collaborative encyclopedia used to store and collect knowledge about the past, present, and future of game development. Even you can contribute to it.
Before starting, please read the [[GDW:P|Rules]] and [[GDW:EM|Editing Manual]]. Thank you!
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Websites Wiki:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
''We are NOT a source of advertisement, promotion, or anything of the sort. We are a wiki, a place to store information. We do not accept low-quality articles or posts that exist solely to advertise.''
<div style="text-align:right;">[[Special:CreatePage|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Create an article</span>]] [[Special:Random|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Random page</span>]]</div>
}}
3772c7ef6803b0a74dc7e543d3aa1acfcbbfbddd
77
76
2023-02-08T03:44:01Z
BlindCartographer
2
Protected "[[Template:MP-Main]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|border=#2C670F
|background=#F8FFF5
|header=<div style="font-size:180%; font-family: Righteous">'''Welcome to the Game Development Wiki!'''</div>
|text=The '''Game Development Wiki''' (better known as the '''Gamedev wiki''') is a collaborative encyclopedia used to store and collect knowledge about the past, present, and future of game development. Even you can contribute to it.
Before starting, please read the [[GDW:P|Rules]] and [[GDW:EM|Editing Manual]]. Thank you!
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Websites Wiki:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
''We are NOT a source of advertisement, promotion, or anything of the sort. We are a wiki, a place to store information. We do not accept low-quality articles or posts that exist solely to advertise.''
<div style="text-align:right;">[[Special:CreatePage|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Create an article</span>]] [[Special:Random|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Random page</span>]]</div>
}}
3772c7ef6803b0a74dc7e543d3aa1acfcbbfbddd
Template:MP-Help
10
39
78
2023-02-08T03:51:05Z
BlindCartographer
2
Created page with "{{Nbox |border=#180F67 |background=#F7F6FF |header=<big><span style="font-family:Righteous;>'''Wiki Help'''</span></big> |text='''Not sure where to start?''' <br> If you are new to wikis, check out the '''[[m:Help:Contents|MediaWiki help pages]]'''. Please assist by contributing to or creating any articles whatsoever relating to websites. All positive contributions great or small will be fully appreciated. If you need any help, please ask a member of our admin team, P..."
wikitext
text/x-wiki
{{Nbox
|border=#180F67
|background=#F7F6FF
|header=<big><span style="font-family:Righteous;>'''Wiki Help'''</span></big>
|text='''Not sure where to start?'''
<br>
If you are new to wikis, check out the '''[[m:Help:Contents|MediaWiki help pages]]'''. Please assist by contributing to or creating any articles whatsoever relating to websites. All positive contributions great or small will be fully appreciated.
If you need any help, please ask a member of our admin team, [[Project:Administrators|located here.]]
'''Adding content'''
<br>
If you feel like contributing to this wiki, please have a look at the [[Special:Wantedpages|pages]] that need creating and expanding. Currently we are hard at work on the wiki.
Before contributing, please have a read of our [[Project:Policy|rules]] and [[Project:Editing Manual|editing manual]]. These guides details all the standards across this wiki, to ensure it is the best it can be.
}}
018f1695b288dde13f04c1f25dfdeeec17c986e6
79
78
2023-02-08T03:51:14Z
BlindCartographer
2
Protected "[[Template:MP-Help]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|border=#180F67
|background=#F7F6FF
|header=<big><span style="font-family:Righteous;>'''Wiki Help'''</span></big>
|text='''Not sure where to start?'''
<br>
If you are new to wikis, check out the '''[[m:Help:Contents|MediaWiki help pages]]'''. Please assist by contributing to or creating any articles whatsoever relating to websites. All positive contributions great or small will be fully appreciated.
If you need any help, please ask a member of our admin team, [[Project:Administrators|located here.]]
'''Adding content'''
<br>
If you feel like contributing to this wiki, please have a look at the [[Special:Wantedpages|pages]] that need creating and expanding. Currently we are hard at work on the wiki.
Before contributing, please have a read of our [[Project:Policy|rules]] and [[Project:Editing Manual|editing manual]]. These guides details all the standards across this wiki, to ensure it is the best it can be.
}}
018f1695b288dde13f04c1f25dfdeeec17c986e6
Main Page
0
1
83
8
2023-02-08T04:01:13Z
BlindCartographer
2
Replaced content with "__NOTOC__ <div id="mp-left"> {{MP-Header}} {{MP-Main}} <div id="mp-right"> {{MP-Help}} </div> [[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
__NOTOC__
<div id="mp-left">
{{MP-Header}}
{{MP-Main}}
<div id="mp-right">
{{MP-Help}}
</div>
[[Category:{{SITENAME}}]]
447cf3e1c48230e4e5131a62f2824415d4a29efb
GDW:P
0
41
84
2023-02-08T04:02:59Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Policy]]
wikitext
text/x-wiki
#REDIRECT [[Project:Policy]]
58b0555922488aafe08ecda7aab09e4a5d782839
85
84
2023-02-08T04:03:12Z
BlindCartographer
2
Protected "[[GDW:P]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Policy]]
58b0555922488aafe08ecda7aab09e4a5d782839
Template:Ombox
10
42
86
2023-02-08T04:11:14Z
BlindCartographer
2
Created page with "<div id="ombox" style="padding: 10px;"> {| align="center" style="background-color: {{{background|#F8F9FA}}}; padding: 2px; width: {{{width|70%}}}; border: 1px solid {{{border color|#A2A9B1}}};" |- valign="middle" | width="12%" | {{{image|[[File:Information icon4.png|45px]]}}} | <div style="text-align: center;">'''{{{header| }}}'''</div>{{{text| }}} <small>{{{comment|}}}</small> |} </div>"
wikitext
text/x-wiki
<div id="ombox" style="padding: 10px;">
{| align="center" style="background-color: {{{background|#F8F9FA}}}; padding: 2px; width: {{{width|70%}}}; border: 1px solid {{{border color|#A2A9B1}}};"
|- valign="middle"
| width="12%" | {{{image|[[File:Information icon4.png|45px]]}}}
| <div style="text-align: center;">'''{{{header| }}}'''</div>{{{text| }}} <small>{{{comment|}}}</small>
|}
</div>
b0f4910a4b3c55af522db5170a66d8b323a70b38
87
86
2023-02-08T04:11:24Z
BlindCartographer
2
Protected "[[Template:Ombox]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div id="ombox" style="padding: 10px;">
{| align="center" style="background-color: {{{background|#F8F9FA}}}; padding: 2px; width: {{{width|70%}}}; border: 1px solid {{{border color|#A2A9B1}}};"
|- valign="middle"
| width="12%" | {{{image|[[File:Information icon4.png|45px]]}}}
| <div style="text-align: center;">'''{{{header| }}}'''</div>{{{text| }}} <small>{{{comment|}}}</small>
|}
</div>
b0f4910a4b3c55af522db5170a66d8b323a70b38
Template:Policy page
10
43
88
2023-02-08T04:11:44Z
BlindCartographer
2
Created page with "{{Ombox |image=[[File:Site-Logo.png|45px|link=Main Page]] |header=This is a Gamedev wiki Policy Page. |text=It documents a site-wide policy or policies that must be followed and are widely accepted among contributors. }}"
wikitext
text/x-wiki
{{Ombox
|image=[[File:Site-Logo.png|45px|link=Main Page]]
|header=This is a Gamedev wiki Policy Page.
|text=It documents a site-wide policy or policies that must be followed and are widely accepted among contributors.
}}
5e2fa62cf896310260613adeeb784ec6dcc305b0
89
88
2023-02-08T04:11:57Z
BlindCartographer
2
Protected "[[Template:Policy page]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Ombox
|image=[[File:Site-Logo.png|45px|link=Main Page]]
|header=This is a Gamedev wiki Policy Page.
|text=It documents a site-wide policy or policies that must be followed and are widely accepted among contributors.
}}
5e2fa62cf896310260613adeeb784ec6dcc305b0
Game Development Wiki:Policy
4
44
90
2023-02-08T04:12:18Z
BlindCartographer
2
Created page with "{{Policy page}}"
wikitext
text/x-wiki
{{Policy page}}
9c9ac439eee720d82b870457c537d4474672d6e4
91
90
2023-02-08T04:12:38Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
9c9ac439eee720d82b870457c537d4474672d6e4
MediaWiki:Editnotice-3
8
45
92
2023-02-08T04:17:03Z
BlindCartographer
2
Created page with "{{Notice |border= black |type= Notice |info= Please sign all of your messages by adding four tildes (<nowiki>~~~~</nowiki>) to the end. Make sure to stay polite and civil, as per wiki [[GDW:P|policy]]. }}"
wikitext
text/x-wiki
{{Notice
|border= black
|type= Notice
|info= Please sign all of your messages by adding four tildes (<nowiki>~~~~</nowiki>) to the end. Make sure to stay polite and civil, as per wiki [[GDW:P|policy]].
}}
5b14f42aa009de470944bd84c8b07c0909dd74fa
93
92
2023-02-08T04:18:06Z
BlindCartographer
2
BlindCartographer moved page [[MediaWiki:Editnotice 3]] to [[MediaWiki:Editnotice-3]] without leaving a redirect
wikitext
text/x-wiki
{{Notice
|border= black
|type= Notice
|info= Please sign all of your messages by adding four tildes (<nowiki>~~~~</nowiki>) to the end. Make sure to stay polite and civil, as per wiki [[GDW:P|policy]].
}}
5b14f42aa009de470944bd84c8b07c0909dd74fa
Category:Game Development Wiki
14
46
96
2023-02-08T14:58:16Z
BlindCartographer
2
Created page with "This category is for pages directly related to the game development wiki."
wikitext
text/x-wiki
This category is for pages directly related to the game development wiki.
54d2d213c8c584c81f73623e5f681d258a8945c2
Template:Stub
10
47
101
2023-02-08T15:13:00Z
BlindCartographer
2
Created page with "{{Mbox |border color=#0000FF |imagelink= [[Category:Stubs]] |header=This article is a stub! |text=This article requires some more information, as it is too short. If you think you have any good information, <div class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this page!]</div> }} <includeonly>[[Category:Stubs]]</includeonly> <noinclude>[[Category:Article management templates]]</noinclude>"
wikitext
text/x-wiki
{{Mbox
|border color=#0000FF
|imagelink= [[Category:Stubs]]
|header=This article is a stub!
|text=This article requires some more information, as it is too short. If you think you have any good information, <div class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this page!]</div>
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
2beba1e2b70aed6ecd89ff85a0448f0548225b9e
Template:Ambox
10
48
103
2023-02-08T15:15:56Z
BlindCartographer
2
Created page with "{{Mbox | namespace = main | type = {{{type|}}} | small = {{{small|}}} | id = {{{id|}}} | class = {{{class|}}} | style = {{{style|}}} | textstyle = {{{textstyle|}}} | plainlinks = {{{plainlinks|}}} | text = {{{text|}}} | issue = {{{issue|}}} | fix = {{{fix|}}} | date = {{{date|}}} | info = {{{info|}}} | image = {{{image|}}} | imageright = {{{imageright|}}} | doc = {{{doc|}}} | cat = {{{cat|}}} }}"
wikitext
text/x-wiki
{{Mbox
| namespace = main
| type = {{{type|}}}
| small = {{{small|}}}
| id = {{{id|}}}
| class = {{{class|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| plainlinks = {{{plainlinks|}}}
| text = {{{text|}}}
| issue = {{{issue|}}}
| fix = {{{fix|}}}
| date = {{{date|}}}
| info = {{{info|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| doc = {{{doc|}}}
| cat = {{{cat|}}}
}}
3b3eaa6f06cced341597654e245f649453d05c19
104
103
2023-02-08T15:16:08Z
BlindCartographer
2
Protected "[[Template:Ambox]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| namespace = main
| type = {{{type|}}}
| small = {{{small|}}}
| id = {{{id|}}}
| class = {{{class|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| plainlinks = {{{plainlinks|}}}
| text = {{{text|}}}
| issue = {{{issue|}}}
| fix = {{{fix|}}}
| date = {{{date|}}}
| info = {{{info|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| doc = {{{doc|}}}
| cat = {{{cat|}}}
}}
3b3eaa6f06cced341597654e245f649453d05c19
Module:Message box
828
15
108
34
2023-02-08T15:35:43Z
BlindCartographer
2
Scribunto
text/plain
-- <pre>
-- Load necessary modules.
require('Module:No globals')
local getArgs
local categoryHandler = require('Module:Category handler')._main
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- -----------------------------------------------------------------------------
-- Helper functions
-- -----------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
-- -----------------------------------------------------------------------------
-- Box class definition
-- -----------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
--[[
-- @function MessageBox.new
-- @factory MessageBox
-- @return {MessageBox}
-- @param {string} boxType
-- @param[opt] {table} args
-- @param {table} cfg
-- @static
--]]
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self:addClass(
cfg.usePlainlinksParam and yesno(args.plainlinks or true) and 'plainlinks'
)
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small>''(%s)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return categoryHandler{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image'):addClass('mbox__content__image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text'):addClass('mbox__content__wrapper')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellSpan = textCell:tag('span')
textCellSpan
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if not self.isSmall then
textCellSpan:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellSpan:wikitext(self.date and (' ' .. self.date) or nil)
if not self.isSmall then
textCellSpan
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
-- -----------------------------------------------------------------------------
-- Exports
-- -----------------------------------------------------------------------------
local p, mt = {}, {}
--[[
-- @function p._exportClasses
-- @return {table}
--]]
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
--[[
-- @function p.main
--
-- @param {string} boxType
-- @param[opt] {table} args
-- @param[opt] {table} cfgTables
-- @return {string}
--]]
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData('Message box/configuration'))
box:setParameters()
box:setCategories()
return box:export()
end
--[[
-- @function p.mbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ambox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.cmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.fmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.imbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ombox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.tmbox
-- @param {Frame} frame
-- @return {string}
--]]
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Dev:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
9deb88acad775e81f9eefc12dfba6847694bb1a2
111
108
2023-02-08T15:51:53Z
BlindCartographer
2
Scribunto
text/plain
-- <pre>
-- Load necessary modules.
require('Module:No globals')
local getArgs
local categoryHandler = require('Module:Category handler')._main
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- -----------------------------------------------------------------------------
-- Helper functions
-- -----------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
-- -----------------------------------------------------------------------------
-- Box class definition
-- -----------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
--[[
-- @function MessageBox.new
-- @factory MessageBox
-- @return {MessageBox}
-- @param {string} boxType
-- @param[opt] {table} args
-- @param {table} cfg
-- @static
--]]
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self:addClass(
cfg.usePlainlinksParam and yesno(args.plainlinks or true) and 'plainlinks'
)
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small>''(%s)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return categoryHandler{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image'):addClass('mbox__content__image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text'):addClass('mbox__content__wrapper')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellSpan = textCell:tag('span')
textCellSpan
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if not self.isSmall then
textCellSpan:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellSpan:wikitext(self.date and (' ' .. self.date) or nil)
if not self.isSmall then
textCellSpan
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
-- -----------------------------------------------------------------------------
-- Exports
-- -----------------------------------------------------------------------------
local p, mt = {}, {}
--[[
-- @function p._exportClasses
-- @return {table}
--]]
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
--[[
-- @function p.main
--
-- @param {string} boxType
-- @param[opt] {table} args
-- @param[opt] {table} cfgTables
-- @return {string}
--]]
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData('Module:Message box/configuration'))
box:setParameters()
box:setCategories()
return box:export()
end
--[[
-- @function p.mbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ambox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.cmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.fmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.imbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ombox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.tmbox
-- @param {Frame} frame
-- @return {string}
--]]
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
5b596efb5d89cdc3fbb9725f10cb8b150fd086f6
Module:Category handler
828
49
109
2023-02-08T15:37:19Z
BlindCartographer
2
Created page with "-- <nowiki> -------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all na..."
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Dev:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Dev:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Dev:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Dev:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Dev:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Dev:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Dev:Category handler/data')
local args = require('Dev:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
34190f377ec515247234507b447512f58dcab209
110
109
2023-02-08T15:46:26Z
BlindCartographer
2
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Dev:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Dev:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Dev:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Dev:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Dev:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Dev:Category handler/data')
local args = require('Dev:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
ba8fcfe333c1be83157a18035b2747f7277911e8
116
110
2023-02-08T15:59:19Z
BlindCartographer
2
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Dev:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
5291e4af7cde86ed104710a84ed8b8d86471e0f7
117
116
2023-02-08T16:03:16Z
BlindCartographer
2
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
3be8bcc6ba33548d754ba61a0e19e1a001fcc091
Module:Category handler/data
828
50
112
2023-02-08T15:54:15Z
BlindCartographer
2
Created page with "-- This module assembles data to be passed to [[Module:Category handler]] using -- mw.loadData. This includes the configuration data and whether the current -- page matches the title blacklist. local data = require('Module:Category handler/config') local mShared = require('Module:Category handler/shared') local blacklist = require('Module:Category handler/blacklist') local title = mw.title.getCurrentTitle() data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(..."
Scribunto
text/plain
-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data
abbc68048ff698e88dda06b64ecf384bbf583120
Module:Category handler/config
828
51
113
2023-02-08T15:54:56Z
BlindCartographer
2
Created page with "-------------------------------------------------------------------------------- -- [[Module:Category handler]] configuration data -- -- Language-specific parameter names and values can be set here. -- -- For blacklist config, see [[Module:Category handler/blacklist]]. -- -------------------------------------------------------------------------------- local cfg = {} -- Don't edit this line. ----------------------------..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy "category2" parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
373cd107b13a5b00e6a1b7e66a749f12502c849d
Module:Category handler/blacklist
828
52
114
2023-02-08T15:56:16Z
BlindCartographer
2
Created page with "-- This module contains the blacklist used by [[Module:Category handler]]. -- Pages that match Lua patterns in this list will not be categorised unless -- categorisation is explicitly requested. return { '^Main Page$', -- don't categorise the main page. -- Don't categorise the following pages or their subpages. -- "%f[/\0]" matches if the next character is "/" or the end of the string. '^Project:Cascade%-protected items%f[/\0]', '^User:UBX%f[/\0]',..."
Scribunto
text/plain
-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- "%f[/\0]" matches if the next character is "/" or the end of the string.
'^Project:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox "template" space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Project:Template messages/.*$',
'/[aA]rchive' -- Don't categorise archives.
}
98409789d207c7d704eae185796f27750b924cc0
Module:Category handler/shared
828
53
115
2023-02-08T15:57:37Z
BlindCartographer
2
Created page with "-- This module contains shared functions used by [[Module:Category handler]] -- and its submodules. local p = {} function p.matchesBlacklist(page, blacklist) for i, pattern in ipairs(blacklist) do local match = mw.ustring.match(page, pattern) if match then return true end end return false end function p.getParamMappings(useLoadData) local dataPage = 'Dev:Namespace detect/data' if useLoadData then return mw.loadData(dataPage).mappings else return req..."
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Dev:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
f9ad152680d04b8d8df80323cc6410a2ac9cb434
118
115
2023-02-08T16:03:56Z
BlindCartographer
2
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
d2d5de1a031e6ce97c242cbfa8afe7a92cb9eca5
Module:Namespace detect/data
828
54
119
2023-02-08T16:06:44Z
BlindCartographer
2
Created page with "-------------------------------------------------------------------------------- -- Namespace detect data -- -- This module holds data for [[Module:Namespace detect]] to be loaded per -- -- page, rather than per #invoke, for performance reasons. -- -------------------------------------------------------------------------------- local cfg = mw.title.new( 'Module:Namespace detect/config').exists an..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = mw.title.new( 'Module:Namespace detect/config').exists and require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}
d1f81557df82419783c79b5f8199787a881dc85e
Module:Namespace detect
828
55
120
2023-02-08T16:08:45Z
BlindCartographer
2
Created page with "-- <nowiki> --[[ -------------------------------------------------------------------------------- -- -- -- NAMESPACE DETECT -- -- -- -- This module implements the {{namespace detect}} template in Lua, with a -- -- few improvements: all namespaces and all namespace..."
Scribunto
text/plain
-- <nowiki>
--[[
--------------------------------------------------------------------------------
-- --
-- NAMESPACE DETECT --
-- --
-- This module implements the {{namespace detect}} template in Lua, with a --
-- few improvements: all namespaces and all namespace aliases are supported, --
-- and namespace names are detected automatically for the local wiki. The --
-- module can also use the corresponding subject namespace value if it is --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the "cfg" table in --
-- Module:Namespace detect/config. --
-- --
--------------------------------------------------------------------------------
--]]
local data = mw.title.new( 'Module:Namespace detect/data').exists and mw.loadData('Module:Namespace detect/data')
local argKeys = data.argKeys
local cfg = data.cfg
local mappings = data.mappings
local yesno = require('Module:Yesno')
local mArguments -- Lazily initialise Module:Arguments
local mTableTools -- Lazily initilalise Module:TableTools
local ustringLower = mw.ustring.lower
local p = {}
local function fetchValue(t1, t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
for i, key in ipairs(t2) do
local value = t1[key]
if value ~= nil then
return value
end
end
return nil
end
local function equalsArrayValue(t, value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
for i, arrayValue in ipairs(t) do
if value == arrayValue then
return true
end
end
return false
end
function p.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
if page then
local success, pageObject = pcall(mw.title.new, page)
if success then
return pageObject
else
return nil
end
else
return mw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
function p.getParamMappings()
return mappings
end
local function getNamespace(args)
-- This function gets the namespace name from the page object.
local page = fetchValue(args, argKeys.demopage)
if page == '' then
page = nil
end
local demospace = fetchValue(args, argKeys.demospace)
if demospace == '' then
demospace = nil
end
local subjectns = fetchValue(args, argKeys.subjectns)
local ret
if demospace then
-- Handle "demospace = main" properly.
if equalsArrayValue(argKeys.main, ustringLower(demospace)) then
ret = mw.site.namespaces[0].name
else
ret = demospace
end
else
local pageObject = p.getPageObject(page)
if pageObject then
if pageObject.isTalkPage then
-- Get the subject namespace if the option is set,
-- otherwise use "talk".
if yesno(subjectns) then
ret = mw.site.namespaces[pageObject.namespace].subject.name
else
ret = 'talk'
end
else
ret = pageObject.nsText
end
else
return nil -- return nil if the page object doesn't exist.
end
end
ret = ret:gsub('_', ' ')
return ustringLower(ret)
end
function p._main(args)
-- Check the parameters stored in the mappings table for any matches.
local namespace = getNamespace(args) or 'other' -- "other" avoids nil table keys
local params = mappings[namespace] or {}
local ret = fetchValue(args, params)
--[[
-- If there were no matches, return parameters for other namespaces.
-- This happens if there was no text specified for the namespace that
-- was detected or if the demospace parameter is not a valid
-- namespace. Note that the parameter for the detected namespace must be
-- completely absent for this to happen, not merely blank.
--]]
if ret == nil then
ret = fetchValue(args, argKeys.other)
end
return ret
end
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {removeBlanks = false})
local ret = p._main(args)
return ret or ''
end
function p.table(frame)
--[[
-- Create a wikitable of all subject namespace parameters, for
-- documentation purposes. The talk parameter is optional, in case it
-- needs to be excluded in the documentation.
--]]
-- Load modules and initialise variables.
mTableTools = require('Module:TableTools')
local namespaces = mw.site.namespaces
local cfg = data.cfg
local useTalk = type(frame) == 'table'
and type(frame.args) == 'table'
and yesno(frame.args.talk) -- Whether to use the talk parameter.
-- Get the header names.
local function checkValue(value, default)
if type(value) == 'string' then
return value
else
return default
end
end
local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace')
local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases')
-- Put the namespaces in order.
local mappingsOrdered = {}
for nsname, params in pairs(mappings) do
if useTalk or nsname ~= 'talk' then
local nsid = namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid = nsid + 1
mappingsOrdered[nsid] = params
end
end
mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
local ret = '{| class="wikitable"'
.. '\n|-'
.. '\n! ' .. nsHeader
.. '\n! ' .. aliasesHeader
for i, params in ipairs(mappingsOrdered) do
for j, param in ipairs(params) do
if j == 1 then
ret = ret .. '\n|-'
.. '\n| <code>' .. param .. '</code>'
.. '\n| '
elseif j == 2 then
ret = ret .. '<code>' .. param .. '</code>'
else
ret = ret .. ', <code>' .. param .. '</code>'
end
end
end
ret = ret .. '\n|-'
.. '\n|}'
return ret
end
return p
2d9e187100ef7c09defce3fb8625f1a1faf7950a
Module:Namespace detect/config
828
56
121
2023-02-08T16:09:20Z
BlindCartographer
2
Created page with "-------------------------------------------------------------------------------- -- Namespace detect configuration data -- -- -- -- This module stores configuration data for Module:Namespace detect. Here -- -- you can localise the module to your wiki's language. -- --..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text "-- " at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for "other" namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of "yes", "no", etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the "table" function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
0e4ff08d13c4b664d66b32c232deb129b77c1a56
Template:Message box
10
57
122
2023-02-08T16:10:29Z
BlindCartographer
2
Created page with "{{#invoke:Message box|main}}"
wikitext
text/x-wiki
{{#invoke:Message box|main}}
04c3193cf93fe228b3fc078cc95237a17c5ff72b
123
122
2023-02-08T16:11:46Z
BlindCartographer
2
Protected "[[Template:Message box]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{#invoke:Message box|main}}
04c3193cf93fe228b3fc078cc95237a17c5ff72b
131
123
2023-02-08T16:32:27Z
BlindCartographer
2
wikitext
text/x-wiki
<div id="mbox">{{#invoke:Message box|main}}</div>
40aabf65c04b06b65775dc1c42c7465a28a873e6
Module:TableTools
828
58
124
2023-02-08T16:17:59Z
BlindCartographer
2
Created page with "-- <nowiki> -------------------------------------------------------------------------------- -- This module includes a number of functions for dealing with Lua tables. -- -- @script TableTools -- @alias p -- @release stable -- @require [[mw:Extension:Scribunto/Lua_reference_manual#libraryUtil|libraryUtil]] -- @attribution [[wikipedia:Module:TableTools|Module:TableTools]] (Wikipedia) -- @see [[Wikipedia:Module:TableTools]] for a similar module. ---------------------------..."
Scribunto
text/plain
-- <nowiki>
--------------------------------------------------------------------------------
-- This module includes a number of functions for dealing with Lua tables.
--
-- @script TableTools
-- @alias p
-- @release stable
-- @require [[mw:Extension:Scribunto/Lua_reference_manual#libraryUtil|libraryUtil]]
-- @attribution [[wikipedia:Module:TableTools|Module:TableTools]] (Wikipedia)
-- @see [[Wikipedia:Module:TableTools]] for a similar module.
--------------------------------------------------------------------------------
local p = {}
local libraryUtil = require('libraryUtil')
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
--------------------------------------------------------------------------------
-- Returns a new table with all parameters stored into keys 1, 2, etc. and with
-- a field `n` with the total number of parameters. Note that the resulting
-- table may not be a sequence.
--
-- @function p.pack
-- @param[opt] ...
-- @return {table}
-- @see <http://www.lua.org/manual/5.2/manual.html#pdf-table.pack>
--------------------------------------------------------------------------------
function p.pack(...)
return {n = select('#', ...), ...}
end
--------------------------------------------------------------------------------
-- Returns the first `n` arguments in `...`. If `n` is negative, arguments are
-- counted from the end of the table.
--
-- @function p.selectFirst
-- @param {number} n
-- @param[opt] ...
-- @see [[Lua reference manual/Standard libraries#select]]
-- @see <http://lua-users.org/wiki/VarargTheSecondClassCitizen>
--------------------------------------------------------------------------------
function p.selectFirst(n, ...)
checkType('Module:TableTools.selectFirst', 1, n, 'number')
local function err()
error('bad argument #1 to \'Dev:TableTools.selectFirst\' ' ..
'(index out of range)')
end
local function recurse(index, next, ...)
if index == 0 then
return
end
return next, recurse(index - 1, ...)
end
n = math.modf(n)
local count = select("#", ...)
if -count > n then
err()
elseif -1 > n and n >= -count then
return recurse(count + 1 + n, ...)
elseif n == -1 then
return ...
elseif n == 0 then
err()
elseif n == 1 then
return (...)
elseif 1 < n and n <= count then
return recurse(n, ...)
elseif count < n then
return ...
end
end
--------------------------------------------------------------------------------
-- Returns `true` if a given table is a sequence.
--
-- @function p.isSequence
-- @param {table} t
-- @return {boolean}
-- @see <http://stackoverflow.com/a/6080274>
--------------------------------------------------------------------------------
function p.isSequence(t)
checkType('Module:TableTools.isSequence', 1, t, 'table')
local i = 1
for _ in pairs(t) do
if t[i] == nil then
return false
end
i = i + 1
end
return true
end
--------------------------------------------------------------------------------
-- Returns the number of elements in a table, even if it is not a sequence.
--
-- @function p.size
-- @param {table} t
-- @return {number}
-- @see <http://stackoverflow.com/a/2705804>
--------------------------------------------------------------------------------
function p.size(t)
checkType('Dev:TableTools.size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
--------------------------------------------------------------------------------
-- Returns `true` if a given table contains a certain element.
--
-- @function p.includes
-- @param {table} t
-- @param elm
-- @return {boolean}
-- @see <http://stackoverflow.com/q/2282444>
--------------------------------------------------------------------------------
function p.includes(t, elm)
checkType('Module:TableTools.includes', 1, t, 'table')
for _, v in pairs(t) do
if v == elm then
return true
end
end
return false
end
--------------------------------------------------------------------------------
-- Merges the content of the second table with the content in the first one.
--
-- @function p.merge
-- @param {table} dest
-- @param {table} source
-- @return {table}
-- @see <http://wiki.garrysmod.com/page/table/Merge>
--------------------------------------------------------------------------------
function p.merge(dest, source)
checkType('Module:TableTools.merge', 1, dest, 'table')
checkType('Module:TableTools.merge', 2, source, 'table')
for k, v in pairs(source) do
if type(v) == 'table' and type(dest[k]) == 'table' then
-- Don't overwrite one table with another; instead merge them
-- recurisvely.
p.merge(dest[k], v)
else
dest[k] = v
end
end
return dest
end
------------------------------------------------------------------------------------
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
--
-- @function p.isPositiveInteger
-- @param v
-- @return {boolean}
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then
return true
else
return false
end
end
------------------------------------------------------------------------------------
-- This function returns true if the given number is a NaN value, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a value can be a valid table key. Lua will
-- generate an error if a NaN is used as a table key.
--
-- @function p.isNan
-- @param v
-- @return {boolean}
------------------------------------------------------------------------------------
function p.isNan(v)
if type(v) == 'number' and tostring(v) == '-nan' then
return true
else
return false
end
end
------------------------------------------------------------------------------------
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
--
-- @function p.shallowClone
-- @param {table} t
-- @return {table}
------------------------------------------------------------------------------------
function p.shallowClone(t)
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
--
-- @function p.removeDuplicates
-- @param {table} t
-- @return {table}
------------------------------------------------------------------------------------
function p.removeDuplicates(t)
checkType('removeDuplicates', 1, t, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for i, v in ipairs(t) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
------------------------------------------------------------------------------------
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
--
-- @function p.numKeys
-- @param {table} t
-- @return {table}
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k, v in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will
-- return {1, 3, 6}.
--
-- @function p.affixNums
-- @param {table} t
-- @param[opt] {boolean} prefix
-- @param[opt] {boolean} suffix
-- @return {table}
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
return s
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k, v in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- Given a table with keys like ("foo1", "bar1", "foo2", "baz2"), returns a table
-- of subtables in the format
-- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }
-- Keys that don't end with an integer are stored in a subtable named "other".
-- The compress option compresses the table so that it can be iterated over with
-- ipairs.
--
-- @function p.numData
-- @param {table} t
-- @param[opt] {boolean} compress
-- @return {table}
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
--
-- @function p.compressSparseArray
-- @param {table} t
-- @return {table}
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
--
-- @function p.sparseIpairs
-- @param {table} t
-- @return {function}
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- This returns the length of a table, or the first integer key n counting from
-- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return
-- a different value when there are gaps in the array portion of the table.
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of
-- the number of unnamed template parameters, so use this function for
-- frame.args.
--
-- @function p.length
-- @param {table} t
-- @return {number}
------------------------------------------------------------------------------------
function p.length(t)
local i = 1
while t[i] ~= nil do
i = i + 1
end
return i - 1
end
return p
-- </nowiki>
-- (Add categories here.)
592ecebdaeb941ffab4f0eb319728612f3ce20c0
Template:Mbox
10
59
126
125
2023-02-08T16:19:53Z
BlindCartographer
2
1 revision imported
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
5bfb2becf8bed35974b47e3ff8660dc14bee40c7
Module:Message box
828
15
128
111
2023-02-08T16:19:53Z
BlindCartographer
2
1 revision imported
Scribunto
text/plain
-- <pre>
-- Load necessary modules.
require('Module:No globals')
local getArgs
local categoryHandler = require('Module:Category handler')._main
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- -----------------------------------------------------------------------------
-- Helper functions
-- -----------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
-- -----------------------------------------------------------------------------
-- Box class definition
-- -----------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
--[[
-- @function MessageBox.new
-- @factory MessageBox
-- @return {MessageBox}
-- @param {string} boxType
-- @param[opt] {table} args
-- @param {table} cfg
-- @static
--]]
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self:addClass(
cfg.usePlainlinksParam and yesno(args.plainlinks or true) and 'plainlinks'
)
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small>''(%s)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return categoryHandler{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image'):addClass('mbox__content__image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text'):addClass('mbox__content__wrapper')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellSpan = textCell:tag('span')
textCellSpan
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if not self.isSmall then
textCellSpan:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellSpan:wikitext(self.date and (' ' .. self.date) or nil)
if not self.isSmall then
textCellSpan
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
-- -----------------------------------------------------------------------------
-- Exports
-- -----------------------------------------------------------------------------
local p, mt = {}, {}
--[[
-- @function p._exportClasses
-- @return {table}
--]]
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
--[[
-- @function p.main
--
-- @param {string} boxType
-- @param[opt] {table} args
-- @param[opt] {table} cfgTables
-- @return {string}
--]]
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData('Module:Message box/configuration'))
box:setParameters()
box:setCategories()
return box:export()
end
--[[
-- @function p.mbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ambox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.cmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.fmbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.imbox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.ombox
-- @param {Frame} frame
-- @return {string}
--]]
--[[
-- @function p.tmbox
-- @param {Frame} frame
-- @return {string}
--]]
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
5b596efb5d89cdc3fbb9725f10cb8b150fd086f6
MediaWiki:Common.css
8
37
129
94
2023-02-08T16:28:42Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
body.theme-fandomdesktop-light #mbox {
color: black;
}
body.theme-fandomdesktop-dark #mbox {
color: black;
}
2b5d8814f11a852574aa1e4e50d69e0fc5a64fea
130
129
2023-02-08T16:32:16Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
482dc03aa5d762f9e005ce7f0ad24050d01f8a44
141
130
2023-02-08T20:54:06Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
}
c3ef0e53b67740b19de34680faa9d9ba6393c7ad
142
141
2023-02-08T20:55:55Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
margin: auto;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
margin: auto;
}
6dd17c6d1f7eeea85e88d55550f4daf12344e9be
144
142
2023-02-08T21:16:59Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
text-align:center;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
text-align: center;
font-family: Righteous;
}
929b687307ae076706e9e99c5e5a3dd02aef0d59
146
144
2023-02-08T21:21:56Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
text-align: center;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
text-align: center;
font-family: Righteous;
}
2a14d7a0bf0c791540356f9b343cc9cbb2d400bb
147
146
2023-02-08T21:23:29Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
vertical-align: center;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
vertical-align: center;
font-family: Righteous;
}
3dc2b7599ae9e525190bd384272d6144f2613a05
148
147
2023-02-08T21:23:48Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
vertical-align: middle;
font-family: Righteous;
}
1729a486a65b570090752906f20694f25addb1fd
149
148
2023-02-08T21:25:18Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .header {
background-color: #B0C4DE;
vertical-align: middle;
}
.portable-infobox .title {
background-color: #B0C4DE;
vertical-align: middle;
font-family: Righteous;
}
6b8b0a862dc267f200d39abd9a709e9efe74b73b
150
149
2023-02-08T21:25:45Z
BlindCartographer
2
Undo revision 149 by [[Special:Contributions/BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]])
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #B0C4DE;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #B0C4DE;
vertical-align: middle;
font-family: Righteous;
}
1729a486a65b570090752906f20694f25addb1fd
Template:Stub
10
47
132
101
2023-02-08T16:37:21Z
BlindCartographer
2
wikitext
text/x-wiki
Placeholder
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
23c818e769a8a1c20469b4ac630fbde73cd8d7ca
File:Site-Logo.png
6
4
133
9
2023-02-08T20:31:55Z
BlindCartographer
2
BlindCartographer uploaded a new version of [[File:Site-Logo.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Site-Wordmark.png
6
60
134
2023-02-08T20:32:28Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
137
134
2023-02-08T20:33:47Z
BlindCartographer
2
Protected "[[File:Site-Wordmark.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
138
137
2023-02-08T20:42:48Z
BlindCartographer
2
BlindCartographer uploaded a new version of [[File:Site-Wordmark.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Site-Icon.png
6
61
135
2023-02-08T20:33:06Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
136
135
2023-02-08T20:33:24Z
BlindCartographer
2
Protected "[[File:Site-Icon.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Policy page
10
43
139
89
2023-02-08T20:45:04Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|image=[[File:Site-Icon.png|45px|link=Main Page]]
|header=This is a Gamedev wiki Policy Page.
|text=It documents a site-wide policy or policies that must be followed and are widely accepted among contributors.
}}
3cf5714ccd62f845043852f57941e4e6472a89aa
Game Development Wiki:About
4
62
140
2023-02-08T20:49:09Z
BlindCartographer
2
Created page with "[[File:Site-Logo.png|thumb|right|The Gamedev Wiki Logo]] The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, and {{NUMBEROFFILES}} files."
wikitext
text/x-wiki
[[File:Site-Logo.png|thumb|right|The Gamedev Wiki Logo]]
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, and {{NUMBEROFFILES}} files.
f7c2a9013efa6e6b37c6eb36dc2ef8c1d3d04d93
145
140
2023-02-08T21:17:22Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, and {{NUMBEROFFILES}} files.
6788bb3f5d4a57308a836d2dfaf1fef1cea2593a
151
145
2023-02-08T21:31:09Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, {{NUMBEROFFILES}} files, and {{NUMBEROFUSERS}}. It was founded by [[User:BlindCartographer|BlindCartographer]] on February 7th, 2023, using the wiki-farm [[m:Miraheze|Miraheze]].
== History ==
The Gamedev Wiki was founded on February 7th, 2023, by [[User:BlindCartographer|BlindCartographer]]. It was founded in an attempt to give a central encyclopedia and advice hub about game development.
[[Category:{{SITENAME}}]]
77b3508c602535a35490fa49e88009f668ada2e8
156
151
2023-02-08T21:40:17Z
BlindCartographer
2
Protected "[[Game Development Wiki:About]]": High traffic page: important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, {{NUMBEROFFILES}} files, and {{NUMBEROFUSERS}}. It was founded by [[User:BlindCartographer|BlindCartographer]] on February 7th, 2023, using the wiki-farm [[m:Miraheze|Miraheze]].
== History ==
The Gamedev Wiki was founded on February 7th, 2023, by [[User:BlindCartographer|BlindCartographer]]. It was founded in an attempt to give a central encyclopedia and advice hub about game development.
[[Category:{{SITENAME}}]]
77b3508c602535a35490fa49e88009f668ada2e8
Template:Infobox website
10
63
143
2023-02-08T20:57:08Z
BlindCartographer
2
Created page with "<infobox> <title source="title1"> <default>{{PAGENAME}}</default> </title> <image source="image1"> <caption source="caption1"/> </image> <data source="type_of_site"> <label>Type of site</label> </data> <data source="language(s)"> <label>Language(s)</label> </data> <data source="written_in"> <label>Written in</label> </data> <data source="subsidiaries"> <label>Subsidiaries</label> </data> <data source="registration"> <..."
wikitext
text/x-wiki
<infobox>
<title source="title1">
<default>{{PAGENAME}}</default>
</title>
<image source="image1">
<caption source="caption1"/>
</image>
<data source="type_of_site">
<label>Type of site</label>
</data>
<data source="language(s)">
<label>Language(s)</label>
</data>
<data source="written_in">
<label>Written in</label>
</data>
<data source="subsidiaries">
<label>Subsidiaries</label>
</data>
<data source="registration">
<label>Registration</label>
</data>
<group>
<header>History</header>
<data source="founded">
<label>Founded</label>
</data>
<data source="founder(s)">
<label>Founder(s)</label>
</data>
<data source="shut_down">
<label>Shut down</label>
</data>
</group>
<group>
<header>Other</header>
<data source="status">
<label>Status</label>
</data>
<data source="url">
<label>URL</label>
</data>
</group>
</infobox>
<noinclude>
Example usage:
<pre>
{{Website
| title1=Example
| image1=Example
| caption1=Example
| type_of_site=Example
| language(s)=Example
| written_in=Example
| subsidiaries=Example
| registration=Example
| founded=Example
| founder(s)=Example
| shut_down=Example
| status=Example
| url=Example
}}
</pre>
<templatedata>
{"params":{"title1":{"suggested":true},"image1":{"suggested":true},"caption1":{"suggested":true},"type_of_site":{"suggested":true},"language(s)":{"suggested":true},"written_in":{"suggested":true},"subsidiaries":{"suggested":true},"registration":{"suggested":true},"founded":{"suggested":true},"founder(s)":{"suggested":true},"shut_down":{"suggested":true},"status":{"suggested":true},"url":{"suggested":true}},"sets":[],"maps":{}}
</templatedata>
</noinclude>
<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Category:Websites]]}}</includeonly>
341410d20d85026e444f5240bc74f02829527196
User:BlindCartographer/Sig
2
64
152
2023-02-08T21:35:46Z
BlindCartographer
2
Created page with "[[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]] · [[Special:Contributions/BlindCartographer|contribs]] · [[Special:Log/block/BlindCartographer|blocks]] · [[Special:Log/protect/BlindCartographer|protections]] · [[Special:Log/delete/BlindCartographer|deletions]] · [[Special:Log/move/BlindCartographer|page moves]] · [[Special:Log/rights/BlindCartographer|rights]])"
wikitext
text/x-wiki
[[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]] · [[Special:Contributions/BlindCartographer|contribs]] · [[Special:Log/block/BlindCartographer|blocks]] · [[Special:Log/protect/BlindCartographer|protections]] · [[Special:Log/delete/BlindCartographer|deletions]] · [[Special:Log/move/BlindCartographer|page moves]] · [[Special:Log/rights/BlindCartographer|rights]])
538a2504085eca9d59983218ca11c61a42dcd73a
153
152
2023-02-08T21:36:03Z
BlindCartographer
2
Protected "[[User:BlindCartographer/Sig]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
[[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]] · [[Special:Contributions/BlindCartographer|contribs]] · [[Special:Log/block/BlindCartographer|blocks]] · [[Special:Log/protect/BlindCartographer|protections]] · [[Special:Log/delete/BlindCartographer|deletions]] · [[Special:Log/move/BlindCartographer|page moves]] · [[Special:Log/rights/BlindCartographer|rights]])
538a2504085eca9d59983218ca11c61a42dcd73a
MediaWiki:Protect-dropdown
8
65
154
2023-02-08T21:39:12Z
BlindCartographer
2
Created page with "*Common protection reasons ** Excessive vandalism ** Excessive spamming ** Excessive edit farming ** Edit warring ** High traffic page ** [[Project:Staff|Staff]] userpage]] ** Important to wiki"
wikitext
text/x-wiki
*Common protection reasons
** Excessive vandalism
** Excessive spamming
** Excessive edit farming
** Edit warring
** High traffic page
** [[Project:Staff|Staff]] userpage]]
** Important to wiki
316b8ccbbfac896e01266defc9bf77b0b4c714fa
155
154
2023-02-08T21:39:25Z
BlindCartographer
2
wikitext
text/x-wiki
*Common protection reasons
** Excessive vandalism
** Excessive spamming
** Excessive edit farming
** Edit warring
** High traffic page
** [[Project:Staff|Staff]] userpage
** Important to wiki
2653d293a892840204915d9c4662ff33f5b43800
MediaWiki:Editnotice-0
8
66
157
2023-02-08T21:43:08Z
BlindCartographer
2
Created page with "<center>[[File:Information icon4.png|20px]] '''Please be sure that all of your edits follow the [[GDW:P|policy]] and the standards of the [[GDW:EM|editing manual]] before proceeding, as failure to do so may result in a warning and/or block.'''</center>"
wikitext
text/x-wiki
<center>[[File:Information icon4.png|20px]] '''Please be sure that all of your edits follow the [[GDW:P|policy]] and the standards of the [[GDW:EM|editing manual]] before proceeding, as failure to do so may result in a warning and/or block.'''</center>
6808127109ea672f6ea59ff587bd563e3485603e
MediaWiki:Editnotice-8
8
67
158
2023-02-08T21:45:21Z
BlindCartographer
2
Created page with "{{Notice |image= [[File:Ambox warning.png|50px|link=]] |border= red |type= Warning! |info= You are about to edit a major part of the wikis system interface. Please make sure all your edits on such pages are '''bug free''' and follow the '''[[m:Content Policy|content policy]]'''. }}"
wikitext
text/x-wiki
{{Notice
|image= [[File:Ambox warning.png|50px|link=]]
|border= red
|type= Warning!
|info= You are about to edit a major part of the wikis system interface. Please make sure all your edits on such pages are '''bug free''' and follow the '''[[m:Content Policy|content policy]]'''.
}}
e63f02692e5709b071465016ae92d667a518137c
Template:MP-Header
10
7
159
16
2023-02-08T21:57:12Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<center><span style="font-size:25px;>'''Game Development Wiki'''</span></center>
|text=<div align=center>[[File:Site-Icon.png|50px|link=Game Development Wiki:About]]</div><center><big>{{NUMBEROFARTICLES}} articles • {{NUMBEROFEDITS}} edits • {{NUMBEROFFILES}} files • {{NUMBEROFUSERS}} users</big></center>
}}
6cb667fba34f513908604db37d5264906cf61ebc
Template:Welcome
10
68
160
2023-02-08T22:05:56Z
BlindCartographer
2
Created page with "== Welcome to The Wiki == {{Nbox |border= #c9c9c9 |header=<span style="font-family:Righteous; font-size:25px;><center>Welcome to the Gamedev Wiki, {{BASEPAGENAME}}!</center></span> |text= [[File:Site-Icon.png|100px|right|link=Main Page]] <span style="font-size:15px;"> Hello and welcome, '''{{BASEPAGENAME}}''', to the Game Development Wiki! We're glad to have you, and we hope you enjoy your stay. In case you haven't yet, please be sure to read our GDW:P|rules and polic..."
wikitext
text/x-wiki
== Welcome to The Wiki ==
{{Nbox
|border= #c9c9c9
|header=<span style="font-family:Righteous; font-size:25px;><center>Welcome to the Gamedev Wiki, {{BASEPAGENAME}}!</center></span>
|text= [[File:Site-Icon.png|100px|right|link=Main Page]]
<span style="font-size:15px;">
Hello and welcome, '''{{BASEPAGENAME}}''', to the Game Development Wiki! We're glad to have you, and we hope you enjoy your stay. In case you haven't yet, please be sure to read our [[GDW:P|rules and policies]] and our [[GDW:EM|editing manual]] for a guide on our editing standards.
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Websites Wiki:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
*Feel like a page is missing from the wiki? Why not [[Special:CreatePage|create]] it yourself?
If you have any questions, don't be afraid to ask our [[Project:Administrators|administrators]] or ask on the [[Special:WikiForum|forums]]. Happy editing!
</span>
}}
b1175616d1d8b83d700d021ea6f234ece44399d0
161
160
2023-02-08T22:06:50Z
BlindCartographer
2
wikitext
text/x-wiki
== Welcome to The Wiki ==
{{Nbox
|border= #c9c9c9
|header=<span style="font-family:Righteous; font-size:25px;><center>Welcome to the Gamedev Wiki, {{BASEPAGENAME}}!</center></span>
|text= [[File:Site-Icon.png|100px|right|link=Main Page]]
<span style="font-size:15px;">
Hello and welcome, '''{{BASEPAGENAME}}''', to the Game Development Wiki! We're glad to have you, and we hope you enjoy your stay. In case you haven't yet, please be sure to read our [[GDW:P|rules and policies]] and our [[GDW:EM|editing manual]] for a guide on our editing standards.
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Websites Wiki:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
*Feel like a page is missing from the wiki? Why not [[Special:CreatePage|create]] it yourself?
If you have any questions, don't be afraid to ask our [[Project:Administrators|administrators]] or ask on the [[Special:WikiForum|forums]]. Happy editing!
</span>
----
<small>This is an automated message. Please do not respond directly as it is likely nobody will see your response.</small>
}}
32955d953bbd4359df37e60fd2553e4b867424e3
MediaWiki:Newarticletext
8
69
162
2023-02-08T22:11:34Z
BlindCartographer
2
Created page with "<div style="text-align: center; border: 2px solid green; padding: 10px; font-size: 125%;">[[File:Essay.png|45px|link=Special:MyPage/Sandbox]] Please make sure your page was created in your '''[[Special:MyPage/Sandbox|sandbox]]''' page before doing so here. Thank you!</div>"
wikitext
text/x-wiki
<div style="text-align: center; border: 2px solid green; padding: 10px; font-size: 125%;">[[File:Essay.png|45px|link=Special:MyPage/Sandbox]] Please make sure your page was created in your '''[[Special:MyPage/Sandbox|sandbox]]''' page before doing so here. Thank you!</div>
45c57cabeab95570883de2393eb53670f0f4bfb2
User:BlindCartographer
2
5
163
17
2023-02-08T22:13:00Z
BlindCartographer
2
wikitext
text/x-wiki
Hey, I'm BlindCartographer, the founder of this wiki, along with being a bureaucrat and Executive Wiki Manager around here.
a18d02a6fd93c3c0229f503b08cf0d5479949b6f
User talk:BlindCartographer
3
70
164
2023-02-08T22:13:29Z
BlindCartographer
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
User:BlindCartographer/sandbox
2
71
165
2023-02-08T22:14:55Z
BlindCartographer
2
Created page with "{{User sandbox}}"
wikitext
text/x-wiki
{{User sandbox}}
d3c6c3118f4de6acb123f1044a362fecdbac12c6
Template:User sandbox
10
72
166
2023-02-08T22:16:55Z
BlindCartographer
2
Created page with "{{Ombox |header = This is a sandbox page. |text = This page is a personal user sandbox, which means it is used by the respective owner to test and practice editing and formatting. It is not an article, but may be used to practice article creation. ---- |comment = (If you want to visit your own sandbox, click [[Special:MyPage/Sandbox|here]].) |image = [[File:Sandbox.png|45px|link=Category:User sandboxes]] |imagelink = Category:User sandboxes }} <include..."
wikitext
text/x-wiki
{{Ombox
|header = This is a sandbox page.
|text = This page is a personal user sandbox, which means it is used by the respective owner to test and practice editing and formatting. It is not an article, but may be used to practice article creation.
----
|comment = (If you want to visit your own sandbox, click [[Special:MyPage/Sandbox|here]].)
|image = [[File:Sandbox.png|45px|link=Category:User sandboxes]]
|imagelink = Category:User sandboxes
}}
<includeonly>[[Category:User sandboxes]]</includeonly>
<noinclude>[[Category:User management templates]]</noinclude>
a409c25daad02e553190e309ec6f6ee2b271e14f
Game Development Wiki:Administrators
4
73
167
2023-02-08T22:18:49Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Staff#Administrators]]
wikitext
text/x-wiki
#REDIRECT [[Project:Staff#Administrators]]
62c303dbe2837ca54509564284adc3ef297c39eb
168
167
2023-02-08T22:19:08Z
BlindCartographer
2
Protected "[[Game Development Wiki:Administrators]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Staff#Administrators]]
62c303dbe2837ca54509564284adc3ef297c39eb
Game Development Wiki:Staff
4
74
169
2023-02-08T22:23:29Z
BlindCartographer
2
Created page with "The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki."
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki.
4b8a52a1fdf02dd2db885f4c7cdc169a2abdd048
170
169
2023-02-09T01:54:13Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a bureaucrat or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
81402c736c9c12120744cfdb2a2328c4738e7440
Help:Group rights
12
75
171
2023-02-09T01:57:54Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Staff]]
wikitext
text/x-wiki
#REDIRECT [[Project:Staff]]
23faceb28995f00f79487ab4151da22609f1dcb3
172
171
2023-02-09T01:58:06Z
BlindCartographer
2
Protected "[[Help:Group rights]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Staff]]
23faceb28995f00f79487ab4151da22609f1dcb3
Game Development Wiki:Staff
4
74
173
170
2023-02-09T02:11:07Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a bureaucrat or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrats ===
=== Administrators ===
=== Interface Administrators ===
=== Forum Administrator ===
=== Rollbacker ===
== Non-Staff user groups ==
=== Abusefilter Editor ===
=== Autoconfirmed ===
=== Autopatrolled ===
=== Bot ===
=== Confirmed ===
3e37e65054617fe47d5164b915fa5362db02fe79
174
173
2023-02-09T02:28:50Z
BlindCartographer
2
/* Bureaucrats */
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a bureaucrat or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrats ===
'''Bureaucrats''' are users who share the same rights as administrators, but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrators ===
=== Interface Administrators ===
=== Forum Administrator ===
=== Rollbacker ===
== Non-Staff user groups ==
=== Abusefilter Editor ===
=== Autoconfirmed ===
=== Autopatrolled ===
=== Bot ===
=== Confirmed ===
d1d6dceb39cf7ba3f159c1458cb7f6a6f1875aa5
175
174
2023-02-09T02:29:15Z
BlindCartographer
2
Protected "[[Game Development Wiki:Staff]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a bureaucrat or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrats ===
'''Bureaucrats''' are users who share the same rights as administrators, but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrators ===
=== Interface Administrators ===
=== Forum Administrator ===
=== Rollbacker ===
== Non-Staff user groups ==
=== Abusefilter Editor ===
=== Autoconfirmed ===
=== Autopatrolled ===
=== Bot ===
=== Confirmed ===
d1d6dceb39cf7ba3f159c1458cb7f6a6f1875aa5
176
175
2023-02-09T03:11:06Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Rollbacker|rollbackers]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, delete and undelete pages, lock and unlock pages, edit fully locked pages, edit the abusefilter, among other administrative duties. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
=== Autoconfirmed ===
=== Autopatrolled ===
=== Bot ===
=== Confirmed ===
=== Founder ===
[[Category:{{SITENAME}}]]
903144979cbbf9cecedc58436490adf3ab64dfef
177
176
2023-02-09T03:28:08Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Rollbacker|rollbackers]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, delete and undelete pages, lock and unlock pages, edit fully locked pages, edit the abusefilter, among other administrative duties. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:Recent Changes]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
[[Category:{{SITENAME}}]]
33e618fbf656553929603d92bd1405913b5ea5ab
178
177
2023-02-09T03:28:40Z
BlindCartographer
2
/* Bot */
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Rollbacker|rollbackers]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, delete and undelete pages, lock and unlock pages, edit fully locked pages, edit the abusefilter, among other administrative duties. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:RecentChanges]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
[[Category:{{SITENAME}}]]
2d9502f6c867fb568f914180348dc56e7ff0701d
179
178
2023-02-09T03:32:11Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Rollbacker|rollbackers]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, delete and undelete pages, lock and unlock pages, edit fully locked pages, edit the abusefilter, among other administrative duties. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:RecentChanges]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
== Promotion ==
The methods of promotion to different user groups can be found [[Project:Promotion to staff|here]].
[[Category:{{SITENAME}}]]
dc96bcb66065c6565754b0e2355fb1d5436ab962
GDW:Staff
0
76
180
2023-02-09T03:34:11Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Staff]]
wikitext
text/x-wiki
#REDIRECT [[Project:Staff]]
23faceb28995f00f79487ab4151da22609f1dcb3
181
180
2023-02-09T03:34:31Z
BlindCartographer
2
Protected "[[GDW:Staff]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Staff]]
23faceb28995f00f79487ab4151da22609f1dcb3
MediaWiki:Sidebar
8
25
182
58
2023-02-09T03:36:45Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Game Development Wiki
** GDW:P|Policies
** GDW:EM|Editing manual
** Special:AllPages|All pages
** GDW:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
* SEARCH
* TOOLBOX
* LANGUAGES
6b46ee42d0e51dd58a581d0f9e36679b36e2afd0
183
182
2023-02-09T03:37:06Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** GDW:P|Policies
** GDW:EM|Editing manual
** Special:AllPages|All pages
** GDW:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
* SEARCH
* TOOLBOX
* LANGUAGES
b1168c59f675893b5b96215d92681af2881b89df
187
183
2023-02-09T03:47:36Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** GDW:P|Policies
** GDW:EM|Editing manual
** Special:WikiForum|Forums
** GDW:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
* SEARCH
* TOOLBOX
* LANGUAGES
f507d64d8cfa17862589e960590c3612e2f16db0
188
187
2023-02-09T03:49:02Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** GDW:P|Policies
** GDW:EM|Editing manual
** Special:WikiForum|Forums
** Special:AllPages|All pages
** GDW:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
* SEARCH
* TOOLBOX
* LANGUAGES
ed4ff17fef83c0fe12482229ff0b269a6dad0229
189
188
2023-02-09T03:50:45Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** GDW:P|Policies
** GDW:EM|Editing manual
** Special:WikiForum|Forums
** Special:AllPages|All pages
** GDW:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
** Project:Community portal|Community portal
* SEARCH
* TOOLBOX
* LANGUAGES
3152f9524c609adb37970ba8fbfe342565a0c271
User:BlindCartographer
2
5
184
163
2023-02-09T03:40:22Z
BlindCartographer
2
wikitext
text/x-wiki
Hey, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and [[Project:Executive Wiki Manager|Executive Wiki Manager]] around here.
977086af71c4fcbc06c860959858beaa48533606
185
184
2023-02-09T03:40:37Z
BlindCartographer
2
wikitext
text/x-wiki
Hey, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and [[Project:Staff#Executive Wiki Manager|Executive Wiki Manager]] around here.
0986c906116e6ad5e783a2d291c7a6948f645be4
186
185
2023-02-09T03:43:57Z
BlindCartographer
2
wikitext
text/x-wiki
Hey, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here.
9bb8c51015cf97dab3c1509b096ff3b98a688e58
Game Development Wiki:Policy
4
44
190
91
2023-02-09T04:04:49Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
There are certain '''rules''' and '''policies''' that every user, both registered and non-registered, must follow. Noncompliance with the rules will result in the appropriate actions being taken by [[GDW:Staff|wiki staff]], which may be as minor as an edit reversion or as major as an indefinite ban.
[[Category:{{SITENAME}}]]
e584f318a813d52cb0f2791ee665a139c04d1416
Game Development Wiki:Tutorial articles
4
77
191
2023-02-09T04:11:29Z
BlindCartographer
2
Created page with "On the Gamedev Wiki, there are certain pages that are made to function as tutorials for the viewer and guide them through a given process of game design and development. These pages are known as [[Category:Tutorials|Tutorial articles]]."
wikitext
text/x-wiki
On the Gamedev Wiki, there are certain pages that are made to function as tutorials for the viewer and guide them through a given process of game design and development. These pages are known as [[Category:Tutorials|Tutorial articles]].
5e23a37087dab7937382906d6da456d92bf35429
192
191
2023-02-09T04:13:22Z
BlindCartographer
2
wikitext
text/x-wiki
On the Gamedev Wiki, there are certain pages that are made to function as tutorials for the viewer and guide them through a given process of game design and development. These pages are known as <noinclude>[[Category:Tutorials|Tutorial articles]]</noinclude>.
[[Category:{{SITENAME}}]]
540fbdb8e2f8b666c3070e8a1e757856688fc085
193
192
2023-02-09T04:18:29Z
BlindCartographer
2
wikitext
text/x-wiki
On the Gamedev Wiki, there are certain pages that are made to function as tutorials for the viewer and guide them through a given process of game design and development. These pages are known as '''Tutorial articles'''.
[[Category:{{SITENAME}}]]
36042d5a2a4b764baf3aec7392632afb33ee7fa1
Template:Mbox
10
59
194
126
2023-02-09T04:20:35Z
BlindCartographer
2
wikitext
text/x-wiki
<templatestyles src="Template:Mbox/styles.css" />{{#invoke:Message box|mbox}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
7b8d47b1dc6790d74f085219229ff7d558e1c145
Template:Mbox/styles.css
10
79
197
196
2023-02-09T04:27:39Z
BlindCartographer
2
1 revision imported from [[:meta:Template:Mbox/styles.css]]
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
70a64e18a5edf35b8f5debf06fbf0ed6bfa91d31
Module:Message box/configuration
828
19
198
42
2023-02-09T04:34:15Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
b6f0151037e6867b577c8cca32ff297e48697a10
Module:Message box/styles.css
828
80
199
2023-02-09T04:34:26Z
BlindCartographer
2
Created page with "/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */ /** [[Module:Message box]] */ /* * WARNING * Some wikis use the styles located here in their local CSS with an import * directive. Do not remove classes from this page until those wikis have * transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does * not load this gadget; see Module:Message box for more details. */ /** NOTE: These do not include .messagebox styles, whi..."
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
70a64e18a5edf35b8f5debf06fbf0ed6bfa91d31
Module:Message box
828
15
200
128
2023-02-09T04:34:58Z
BlindCartographer
2
Scribunto
text/plain
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
fd6a8b1a0ac5916465cdf2eb099825f1d006cfba
Module:Message box/ombox.css
828
81
201
2023-02-09T04:36:22Z
BlindCartographer
2
Created page with "/* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: #f8f9fa; box-sizing: border-box; } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1p..."
sanitized-css
text/css
/* {{pp|small=y}} */
.ombox {
margin: 4px 0;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
/* For the "small=yes" option. */
.ombox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ombox-delete {
border: 2px solid #b32424; /* Red */
}
.ombox-content {
border: 1px solid #f28500; /* Orange */
}
.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
.ombox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.ombox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.ombox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ombox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ombox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.ombox {
margin: 4px 10%;
}
.ombox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
8fe3df4bb607e699eab2dbd23bd4a1a446391002
Module:Message box/ambox.css
828
82
202
2023-02-09T04:37:08Z
BlindCartographer
2
Created page with "/** * {{ambox}} (article message box) styles * * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css * @revision 2021-07-15 */ table.ambox { /* 10% = Will not overlap with other elements */ margin: 0 10%; border: 1px solid #a2a9b1; /* Default "notice" blue */ border-left: 10px solid #36c; background-color: #fbfbfb; box-sizing: border-box; } /* Single border between stacked boxes. */ table.ambox + table.ambox, table.ambox + link + table.amb..."
sanitized-css
text/css
/**
* {{ambox}} (article message box) styles
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
table.ambox {
/* 10% = Will not overlap with other elements */
margin: 0 10%;
border: 1px solid #a2a9b1;
/* Default "notice" blue */
border-left: 10px solid #36c;
background-color: #fbfbfb;
box-sizing: border-box;
}
/* Single border between stacked boxes. */
table.ambox + table.ambox,
table.ambox + link + table.ambox,
table.ambox + style + table.ambox {
margin-top: -1px;
}
/* An empty narrow cell */
.ambox td.mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
/* The message body cell(s) */
.ambox th.mbox-text,
.ambox td.mbox-text {
border: none;
/* 0.5em left/right */
padding: 0.25em 0.5em;
/* Make all mboxes the same width regardless of text length */
width: 100%;
}
/* The left image cell */
.ambox td.mbox-image {
/* 0.5em left, 0px right */
/* @noflip */
padding: 2px 0 2px 0.5em;
}
/* The right image cell */
.ambox td.mbox-imageright {
/* 0px left, 0.5em right */
/* @noflip */
padding: 2px 0.5em 2px 0;
}
table.ambox-notice {
/* Blue */
border-left-color: #36c;
}
table.ambox-speedy {
/* Pink */
background-color: #fee7e6;
}
table.ambox-delete,
table.ambox-speedy {
/* Red */
border-left-color: #b32424;
}
table.ambox-content {
/* Orange */
border-left-color: #f28500;
}
table.ambox-style {
/* Yellow */
border-left-color: #fc3;
}
table.ambox-move {
/* Purple */
border-left-color: #9932cc;
}
table.ambox-protection {
/* Gray-gold */
border-left-color: #a2a9b1;
}
/**
* {{ambox|small=1}} styles
*
* These ".mbox-small" classes must be placed after all other
* ".ambox" classes. "html body.mediawiki .ambox"
* is so they override both "table.ambox + table.ambox"
* and "table.ambox + link + table.ambox" above.
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
/* For the "small=yes" option. */
html body.mediawiki .ambox.mbox-small {
clear: right;
float: right;
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
/* For the "small=left" option. */
html body.mediawiki .ambox.mbox-small-left {
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
4ab2531b7ba01a7c7843df32663c660b70275aad
Module:Message box/fmbox.css
828
83
203
2023-02-09T04:38:09Z
BlindCartographer
2
Created page with "/* {{pp|small=y}} */ .fmbox { clear: both; margin: 0.2em 0; width: 100%; border: 1px solid #a2a9b1; background-color: #f8f9fa; /* Default "system" gray */ box-sizing: border-box; } .fmbox-warning { border: 1px solid #bb7070; /* Dark pink */ background-color: #ffdbdb; /* Pink */ } .fmbox-editnotice { background-color: transparent; } .fmbox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .fmbox .mbox-image { border: no..."
sanitized-css
text/css
/* {{pp|small=y}} */
.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
.fmbox-editnotice {
background-color: transparent;
}
.fmbox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.fmbox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.fmbox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
.fmbox .mbox-invalid-type {
text-align: center;
}
fca0f5e4b400e4a2ab158b219c52822451211d66
Module:Message box/tmbox.css
828
84
204
2023-02-09T04:38:32Z
BlindCartographer
2
Created page with "/** * {{tmbox}} (talk page message box) styles * * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css * @revision 2021-07-15 */ table.tmbox { margin: 4px 10%; border-collapse: collapse; /* Default "notice" gray-brown */ border: 1px solid #c0c090; background-color: #f8eaba; min-width: 80%; box-sizing: border-box; } .tmbox.mbox-small { /* reset the min-width of tmbox above */ min-width: 0; } /** * For tmboxes inside other templates. "bo..."
sanitized-css
text/css
/**
* {{tmbox}} (talk page message box) styles
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
/* Default "notice" gray-brown */
border: 1px solid #c0c090;
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
/* reset the min-width of tmbox above */
min-width: 0;
}
/**
* For tmboxes inside other templates. "body.mediawiki" ensures that
* this declaration overrides other styles (including mbox-small above)
*/
body.mediawiki .mbox-inside .tmbox {
margin: 2px 0;
/* For Safari and Opera */
width: 100%;
}
.mbox-inside .tmbox.mbox-small {
/**
* "small" tmboxes should not be small when also "nested",
* so reset styles that are set in ".tmbox.mbox-small" below.
*/
line-height: 1.5em;
font-size: 100%;
}
/* An empty narrow cell */
td.mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
/* The message body cell(s) */
th.mbox-text, td.mbox-text {
border: none;
/* 0.9em left/right */
padding: 0.25em 0.9em;
/* Make all mboxes the same width regardless of text length */
width: 100%;
}
/* The left image cell */
td.mbox-image {
border: none;
/* 0.9em left, 0px right */
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
/* The right image cell */
td.mbox-imageright {
border: none;
/* 0px left, 0.9em right */
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
table.tmbox-speedy {
/* Pink */
background-color: #fee7e6;
}
table.tmbox-delete,
table.tmbox-speedy {
/* Red */
border-color: #b32424;
border-width: 2px;
}
table.tmbox-content {
/* Orange */
border-color: #f28500;
border-width: 2px;
}
table.tmbox-style {
/* Yellow */
border-color: #fc3;
border-width: 2px;
}
table.tmbox-move {
/* Purple */
border-color: #9932cc;
border-width: 2px;
}
table.tmbox-protection,
table.tmbox-notice {
/* Gray-brown */
border-color: #c0c090;
border-width: 1px;
}
/**
* {{tmbox|small=1}} styles
*
* These ".mbox-small" classes must be placed after all other
* ".tmbox" classes. "html body.mediawiki .tmbox"
* is so they apply only to talk page message boxes.
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
/* For the "small=yes" option. */
html body.mediawiki .tmbox.mbox-small {
clear: right;
float: right;
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
17413bb9de8527d49f25416233a0dda2e9086a55
Template:Policy page
10
43
205
139
2023-02-09T15:38:17Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = protection
| image = [[File:Site-Icon.png|50px|link=Main Page]]
| text = <center>'''This page documents a [[GDW:P|Game Development Wiki policy]]'''.</center>
It documents a site-wide policy or policies that must be followed and are widely accepted among contributors. All wiki users should follow it, and changes made to it should be discussed on the [[{{TALKPAGENAME}}|talk page]].
| small = {{{small|left}}} / left / no
| plainlinks = no
}}<includeonly>[[Category:{{SITENAME}}]]</includeonly>
65191dc4e6f4ed2cdc82922b5b0bf3271f5c2344
206
205
2023-02-09T15:42:05Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = protection
| image = [[File:Site-Icon.png|50px|link=Main Page]]
| text = <center>'''This page documents a [[GDW:P|Game Development Wiki policy]]'''.</center>
It documents a site-wide policy or policies that must be followed and are widely accepted among contributors. All wiki users should follow it, and changes made to it should be discussed on the [[{{TALKPAGENAME}}|talk page]].
| small = {{{small|left}}} / left / no
| plainlinks = no
}}
<br />{{#ifeq:{{{demo}}}|yes||<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{{category|[[Category:{{SITENAME}}|{{{Sortkey|{{PAGENAME}}}}}]]}}}}}</includeonly>}}<noinclude>{{Documentation}}[[Category:Header templates]]</noinclude>
073f9392f4db5e4950853bdd56d2e93580f41f6c
Template:Note/styles.css
10
12
207
28
2023-02-09T17:08:06Z
BlindCartographer
2
BlindCartographer moved page [[Template:Note/style.css]] to [[Template:Note/styles.css]] without leaving a redirect
sanitized-css
text/css
/** Note Template Styling **/
.note {
background-position: left 7px top 50%;
padding: 0.5em 0.5em 0.5em 40px;
margin: 0.5em 0;
overflow: hidden;
background-color: #f8f9fa;
background-repeat: no-repeat;
border: 1px solid #ddd;
}
.note-inline {
display: inline-block;
vertical-align: middle;
}
.note-info {
background-color: #f6efe5;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/d/d5/OOjs_UI_icon_reference_20_ac6600.svg);
background-size: 25px;
border-color: #ac6600;
padding-left: 40px;
min-height: 28px;
}
.note-reminder {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-warn {
background-color: #fff9ea;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg);
background-size: 25px;
border-color: #fc3;
min-height: 28px;
}
.note-error {
background-color: #fee7e6;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg);
background-size: 25px;
border-color: #c33;
min-height: 28px;
}
fe0d3d43e528b234ee8c08115d9315f01b94b482
Template:NSFW article
10
85
208
2023-02-09T17:08:22Z
BlindCartographer
2
Created page with "{{Note|This article features explicit or NSFW content. Viewer discretion is advised.|error}}"
wikitext
text/x-wiki
{{Note|This article features explicit or NSFW content. Viewer discretion is advised.|error}}
44b4daadd8c7069e2d90dbf69926b317bf9f97b5
Template:Note
10
11
209
54
2023-02-09T17:14:30Z
BlindCartographer
2
wikitext
text/x-wiki
<templatestyles src="Template:Note/styles.css" />
<onlyinclude>{{#if: {{#if:{{{1|{{{text|}}}}}}|{{{1|{{{text|}}}}}}|{{#if:<noinclude>demo</noinclude>|demo|{{{demo|}}}}} }} | <div role="note" class="note note-{{#switch: {{{2|{{{type|}}}}}}
|gotcha=error
|=info
|#default={{{2|{{{type|}}}}}}
}} {{#ifeq:{{{inline|}}}|1|note-inline}}">{{{1|{{{text}}}}}}</div>
}}<!--
--></onlyinclude>
d398c1cdde51447b3e7ef8b70c9fc101d8cfdbdd
Game Development Wiki:Administrator Noticeboard
4
86
210
2023-02-16T00:28:24Z
BlindCartographer
2
Created page with "The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (usi..."
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{tlx|delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center>{{Button|{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}}|Add new report}}</center>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
23ecff01553cf474077ce62a0c24a5ebde54159a
212
210
2023-02-16T00:29:28Z
BlindCartographer
2
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center>{{Button|{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}}|Add new report}}</center>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
05cbcc3fb8694ab2335512a9c7de7c126c358fec
214
212
2023-02-16T00:35:02Z
BlindCartographer
2
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<div style="text-align:right;">{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}}|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Add new report</span>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
6b0b11001c80eabb76509298e559844f4d74f471
Template:Tlx
10
87
211
2023-02-16T00:29:09Z
BlindCartographer
2
Created page with "<includeonly><code><nowiki>{{</nowiki>{{#if:{{{subst|}}}|[[wikipedia:Help:Substitution|subst]]:}}[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!-- -->{{#if:{{{2|}}}| |{{{2}}} }}<!-- -->{{#if:{{{3|}}}| |{{{3}}} }}<!-- -->{{#if:{{{4|}}}| |{{{4}}} }}<!-- -->{{#if:{{{5|}}}| |{{{5}}} }}<!-- -->{{#if:{{{6|}}}| |{{{6}}} }}<!-- -->{{#if:{{{7|}}}| |{{{7}}} }}<!-- -->{{#if:{{{8|}}}| |{{{8}}} }}<!-- -->{{#if:{{{9|}}}| |{{{9}}}..."
wikitext
text/x-wiki
<includeonly><code><nowiki>{{</nowiki>{{#if:{{{subst|}}}|[[wikipedia:Help:Substitution|subst]]:}}[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!--
-->{{#if:{{{2|}}}|
|{{{2}}}
}}<!--
-->{{#if:{{{3|}}}|
|{{{3}}}
}}<!--
-->{{#if:{{{4|}}}|
|{{{4}}}
}}<!--
-->{{#if:{{{5|}}}|
|{{{5}}}
}}<!--
-->{{#if:{{{6|}}}|
|{{{6}}}
}}<!--
-->{{#if:{{{7|}}}|
|{{{7}}}
}}<!--
-->{{#if:{{{8|}}}|
|{{{8}}}
}}<!--
-->{{#if:{{{9|}}}|
|{{{9}}}
}}<!--
-->{{#if:{{{10|}}}|
|{{{10}}}
}}<!--
-->{{#if:{{{11|}}}|
|{{{11}}}
}}<!--
-->{{#if:{{{12|}}}|
|''...''
}}<nowiki>}}</nowiki></code></includeonly><noinclude>[[Category:Templates]]</noinclude>
c619c92076bfbad40f96a5eec534762128a54f6d
Template:Button
10
88
213
2023-02-16T00:32:36Z
BlindCartographer
2
Created page with "{{#switch:{{lc:{{{position|{{{2|}}}}}}}}|c|center = <center>|#default = }}<span class="custom-wds-wrapper plainlinks" style="{{#switch:{{lc:{{{position|{{{3|}}}}}}}}<!-- -->| l<!-- -->| left = float: left; margin-right: 3px<!-- -->| r<!-- -->| right = float: right; margin-left: 3px<!-- -->| #default = margin: 0 1.5px<!-- -->}}<!-- -->}};">{{#if:{{{elink|{{{link|{{{1|}}}}}}}}}<!-- -->| {{#switch:{{#sub:{{{elink|{{{link|{{{1|}}}}}}}}}|0|4}}<!--..."
wikitext
text/x-wiki
{{#switch:{{lc:{{{position|{{{2|}}}}}}}}|c|center = <center>|#default = }}<span class="custom-wds-wrapper plainlinks" style="{{#switch:{{lc:{{{position|{{{3|}}}}}}}}<!--
-->| l<!--
-->| left = float: left; margin-right: 3px<!--
-->| r<!--
-->| right = float: right; margin-left: 3px<!--
-->| #default = margin: 0 1.5px<!--
-->}}<!--
-->}};">{{#if:{{{elink|{{{link|{{{1|}}}}}}}}}<!--
-->| {{#switch:{{#sub:{{{elink|{{{link|{{{1|}}}}}}}}}|0|4}}<!--
-->| {{#sub:{{SERVER}}|0|4}}<!--
-->| http = [{{{eink|{{{1|{{fullurl:Template:Button}}}}}}}} <span title="{{{tooltip|{{{text|{{{link|{{{1|}}}}}}}}}}}}" class="wds-button {{{class|}}}" style="cursor:pointer; {{#if:{{{style|}}}|{{{style}}}}}">{{{text|{{{2|{{{link|{{{1|Link}}}}}}}}}}}}</span>]<!--
-->| #default = {{#switch:{{#sub:{{{1|}}}|0|1}}<!--
-->| /<!--
-->| : = [[{{{link|{{{1|Template:Button}}}}}}|<span {{#if:{{{tooltip|}}}|title="{{{tooltip}}}"}} class="wds-button {{{class|}}}" style="cursor:pointer; {{#if:{{{style|}}}|{{{style}}}}}">{{{text|{{{2|{{{link|{{{1|Link}}}}}}}}}}}}</span>]]<!--
-->| #default = [[:{{{link|{{{1|Template:Button}}}}}}|<span {{#if:{{{tooltip|}}}|title="{{{tooltip}}}"}} class="wds-button {{{class|}}}" style="cursor:pointer; {{#if:{{{style|}}}|{{{style}}}}}">{{{text|{{{2|{{{link|{{{1|Link}}}}}}}}}}}}</span>]]<!--
-->}}<!--
-->}}<!--
-->| <span {{#if:{{{tooltip|}}}|title="{{{tooltip}}}"}} class="wds-button {{{class|}}} wds-is-disabled" {{#if:{{{style|}}}|style="{{{style}}}"}}>{{{text|{{{2|Button}}}}}}</span><!--
-->}}
</span>{{#switch:{{lc:{{{position|{{{2|}}}}}}}}|c|center = </center>|#default = }}
19359900776b167057d53558413b18e3b84e19d6
Template:Tutorial page
10
89
215
2023-03-06T01:28:41Z
BlindCartographer
2
Created page with "{| style="margin: 10px auto; padding: 2px; width: 70%; border-radius: 5px; border: 3px solid green;" | rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|80px|link=Project:Tutorial articles]] | style="text-align: center; font-size: 25px;"|'''Tutorial article''' |- valign="middle" |This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part of game development. |}<noinclude>Category:T..."
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 70%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|80px|link=Project:Tutorial articles]]
| style="text-align: center; font-size: 25px;"|'''Tutorial article'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part of game development.
|}<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
bee95b83615d08f6d4528d568ad49a80de0a5fa9
217
215
2023-03-06T02:45:03Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status|}}}|
----
{{#switch:{{{status|}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">Unreviewed</span>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">Approved</span>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">Under revision</span>
|disapproved=
'''Status:''' <span style="color: #ff8000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">Disapproved</span>
}}
}}
|}<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
f1ccec7d54c446892087b63f53dcd92b70fef0fb
218
217
2023-03-06T02:47:50Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status}}}|
----
{{#switch:{{{status}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">'''Unreviewed'''</span>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">'''Approved'''</span>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">'''Under revision'''</span>
|disapproved=
'''Status:''' <span style="color: #ff8000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">'''Disapproved'''</span>
}}
}}
|}<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
5f96bdc3b592835a208bfd27107007b574a2e53f
219
218
2023-03-06T02:49:02Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status}}}|
----
{{#switch:{{{status}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">'''Unreviewed'''</span>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">'''Approved'''</span>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">'''Under revision'''</span>
|disapproved=
'''Status:''' <span style="color: #ff0000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">'''Disapproved'''</span>
}}
}}
|}<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
a31112d8a7668456acee0a8a74e4646abc0a8294
221
219
2023-03-06T02:49:57Z
BlindCartographer
2
Protected "[[Template:Tutorial page]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status}}}|
----
{{#switch:{{{status}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">'''Unreviewed'''</span>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">'''Approved'''</span>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">'''Under revision'''</span>
|disapproved=
'''Status:''' <span style="color: #ff0000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">'''Disapproved'''</span>
}}
}}
|}<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
a31112d8a7668456acee0a8a74e4646abc0a8294
Game Development Wiki:About
4
62
216
156
2023-03-06T02:12:53Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, {{NUMBEROFFILES}} files, and {{NUMBEROFUSERS}} users. It was founded by [[User:BlindCartographer|BlindCartographer]] on February 7th, 2023, using the wiki-farm [[m:Miraheze|Miraheze]].
== History ==
The Gamedev Wiki was founded on February 7th, 2023, by [[User:BlindCartographer|BlindCartographer]]. It was founded in an attempt to give a central encyclopedia and advice hub about game development.
[[Category:{{SITENAME}}]]
c1826b60e0b523e2a99059c8dc83dd2692cb76ed
User:BlindCartographer/sandbox
2
71
220
165
2023-03-06T02:49:23Z
BlindCartographer
2
wikitext
text/x-wiki
{{User sandbox}}
{{Tutorial page}}
{{Tutorial page|status=approved}}
{{Tutorial page|status=under revision}}
{{Tutorial page|status=disapproved}}
2f2234c00f0a9050cecd6f8494267a066ea8a34a
Template:Ombox
10
42
222
87
2023-03-06T02:55:09Z
BlindCartographer
2
wikitext
text/x-wiki
<div id="ombox" style="padding: 10px;">
{| style="margin: 10px auto; background-color: {{{background|#F8F9FA}}}; padding: 2px; width: {{{width|70%}}}; border: 1px solid {{{border color|#A2A9B1}}};"
| rowspan="2" style="text-align: left; width: 15%"|{{{image|[[File:Information icon4.png|45px]]}}}
|- valign="middle"
| <div style="text-align: center;">'''{{{header| }}}'''</div>{{{text| }}} <small>{{{comment|}}}</small>
|}
</div>
111db3db5737427c551c7c1b200fa071d1a0d04c
Template:Ombox
10
42
223
222
2023-03-06T02:56:18Z
BlindCartographer
2
wikitext
text/x-wiki
<div id="ombox" style="padding: 10px;">
{| style="margin: 10px auto; background-color: {{{background|#F8F9FA}}}; padding: 2px; width: {{{width|70%}}}; border: 1px solid {{{border color|#A2A9B1}}};"
| rowspan="2" style="text-align: center; width: 15%"|{{{image|[[File:Information icon4.png|45px]]}}}
|- valign="middle"
| <div style="text-align: center;">'''{{{header| }}}'''</div>{{{text| }}} <small>{{{comment|}}}</small>
|}
</div>
7c3f360a726636151ae0ba8886f608dbd8615e69
Template:Stub
10
47
224
132
2023-03-06T03:11:08Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = notice
| image = [[File:Information icon4.png|45px|link=Main Page]]
| text = <center>'''This article is a stub'''.</center>
This article requires some more information, as it is too short. If you think you have any good information, <div class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this page!]</div>
| small = {{{small|left}}} / left / no
| plainlinks = no
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
55870c15c397bd464b6c2a37478b9deba36228f1
225
224
2023-03-06T04:29:45Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = notice
| image = [[File:Information icon4.png|45px|link=Main Page]]
| text = <center>'''This article is a stub'''.</center>
This article requires some more information, as it is too short. If you believe you have some good information to add to this article, please do so!
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
3121961d811165a0cd8fb49f1af48525986e8335
226
225
2023-03-06T04:30:05Z
BlindCartographer
2
Protected "[[Template:Stub]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = notice
| image = [[File:Information icon4.png|45px|link=Main Page]]
| text = <center>'''This article is a stub'''.</center>
This article requires some more information, as it is too short. If you believe you have some good information to add to this article, please do so!
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
3121961d811165a0cd8fb49f1af48525986e8335
MediaWiki:Sidebar
8
25
227
189
2023-03-06T04:32:08Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** Game Development Wiki:Policy|Policies
** Game Development Wiki:Editing manual|Editing manual
** Special:WikiForum|Forums
** Special:AllPages|All pages
** Game Development Wiki:Staff|Wiki staff
** Project:Administrator Noticeboard|Administrator noticeboard
** Project:Community portal|Community portal
* SEARCH
* TOOLBOX
* LANGUAGES
f154bccb609f8e9292a9c5532a1f345a04de281d
Game Development Wiki:Moderation
4
90
228
2023-03-06T04:56:52Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Staff#Moderators]]
wikitext
text/x-wiki
#REDIRECT [[Project:Staff#Moderators]]
9163fb71380d54c39885ac3020cfdb018c68be52
229
228
2023-03-06T04:57:05Z
BlindCartographer
2
Protected "[[Game Development Wiki:Moderation]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Staff#Moderators]]
9163fb71380d54c39885ac3020cfdb018c68be52
230
229
2023-03-06T04:59:32Z
BlindCartographer
2
Changed redirect target from [[Game Development Wiki:Staff#Moderators]] to [[Game Development Wiki:Staff#Moderator]]
wikitext
text/x-wiki
#REDIRECT [[Project:Staff#Moderator]]
e75ccd10a47c87dd76edcb1b54fa757853570c99
Game Development Wiki:Staff
4
74
231
179
2023-03-06T05:11:37Z
BlindCartographer
2
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Moderator|Moderators]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, mass delete pages, and edit the abusefilter, among other many other administrative duties and rights. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
== Moderator ==
'''Moderators''' are users who can delete/undelete pages, protect/unprotect pages, and edit protected pages, along with having the rights of a [[Project:Staff#Rollbacker|rollbacker]]. They also have the ability to edit, delete/undelete, protect/undelete, and move files.
The list of all current interface admins can be found [[Special:ListUsers/moderator|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:RecentChanges]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
== Promotion ==
The methods of promotion to different user groups can be found [[Project:Promotion to staff|here]].
[[Category:{{SITENAME}}]]
2c2944575b2108d4778523bdbfd49f5bf373eaa2
232
231
2023-03-06T05:13:00Z
BlindCartographer
2
/* Moderator */
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Moderator|Moderators]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, mass delete pages, and edit the abusefilter, among other many other administrative duties and rights. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Moderator ===
'''Moderators''' are users who can delete/undelete pages, protect/unprotect pages, and edit protected pages, along with having the rights of a [[Project:Staff#Rollbacker|rollbacker]]. They also have the ability to edit, delete/undelete, protect/undelete, and move files.
The list of all current moderators can be found [[Special:ListUsers/moderator|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:RecentChanges]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
== Promotion ==
The methods of promotion to different user groups can be found [[Project:Promotion to staff|here]].
[[Category:{{SITENAME}}]]
2f18b9fbfb11b36296ffd59f1cf661ac3f06aca2
Game Development Wiki:Policy
4
44
233
190
2023-03-06T05:25:13Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
There are certain '''rules''' and '''policies''' that every user, both registered and non-registered, must follow. Noncompliance with the rules will result in the appropriate actions being taken by [[GDW:Staff|wiki staff]], which may be as minor as an edit reversion or as major as an indefinite ban. If a rule seems unclear, please ask a current member of the [[Project:Staff|wiki staff]] for clarification. Rules concerning edit/page quality can be found [[Project:Editing manual|here]].
== General Rules ==
===Rule Zero===
Nobody is above the rules. All users, whether staff or not, are subject to punishment if necessary. There should be absolutely no favoritism, and attempting to find loopholes in the rules will not let you avoid punishment.
===Vandalism===
Vandalism or any sort of disruptive edits is strictly prohibited. The deliberate act of removing or destroying content on the wiki as well as purposefully spreading false or nonsensical information will not be tolerated. This applies to all articles and images. Acts of vandalism are always done maliciously; making an unhelpful edit by mistake cannot be considered vandalism. Vandalistic edits will be reverted and result in a warning and a block following afterwards if it continues.
===Wiki Content===
The wiki is primarily meant for the documentation of game development and anything related to it. Incredibly short pages will be deleted after 24 hours if it does not eventually get over 1,200 bytes. Rule breaking content will be removed. The first few offense will result in a warning. Further offenses or multiple offenses done in a short period of time will be counted as vandalism, resulting in either a lengthy or indefinite block. Adding explicitly NSFW or NSFL content will result in an immediate block.
The wiki does not cover individual games.
===Copyright Violations===
Adding articles or files about websites that violate copyright or violating copyright in any way is unacceptable. Any and all forms of copyright violation will be removed. Any form of intentional copyright violations will result in an indefinite block.
===Page Creation===
You can create any page you want, as long as it is relevant to the wikis overarching topic. Do not create irrelevant or spam pages, as that will result in immediate action. Make sure all pages at least mildly follow the [[Project:Editing manual|Editing manual]]. Please make a page on your [[Special:MyPage/Sandbox|Sandbox]] page before making it an article. Rule breaking content will be removed. Varying amounts of warnings and blocks may be handed out depending on the situation.
===Sockpuppetry===
The general rule is one editor, one account. Do not use multiple accounts to mislead, deceive, vandalize or disrupt; to create the illusion of greater support for a position; to stir up controversy; or to circumvent a block, ban, or sanction. Do not ask your family or friends to create accounts to support you. Do not revive old unused accounts and use them as different users, or use another person's account. Normal alts are fine, but don't use them maliciously. Upon being found out, an indefinite block will be put in place for both accounts.
===Spamming Edits/Edit Farming===
Do not spam edits. This behavior is disruptive and clutters an article's history. This can range from writing the same thing over and over across an article to adding several unnecessary links to making several edits that consist of adding something then quickly undoing it. Creating pages over and over is also considered spam. Spamming in an article is generally seen as vandalism. Any form of spam is forbidden. Edits will be reverted. Offending users will be warned and may be blocked if they continue.
===Edit Wars===
An edit war is where two users undo each of their edits in one page due to a disagreement between each other. If you are in a situation where you are edit warring with someone, please message them on their message wall. Explain your reasoning as to why your edit should be published with research to back-up your reasoning. If the edit war continues after discussing, please contact an admin or content moderators. If you are the user with incorrect information, or your edits were not published, please do not harass or get frustrated with the people that were involved. Pages subject to edit warring will be temporarily locked, and users will be warned. Users continuing afterwards may be blocked.
===Behavior & Civility===
All contributors are expected to act civil and courteous towards other users. If there is a dispute, try and work it out peacefully with the other user, or just back away. Trolling is also not allowed, and will result in a punishment if it does not stop. Offending users will be warned. Users continuing after the warning(s) will be blocked.
===Spamming===
Do not spam. This behavior is annoying and can clutter a discussion. This can range from copypastas to needlessly long breaks to writing in a very distracting font. Making the same or very similar comments multiple times is also considered spam. Encouraging users to spam is also forbidden. Offending users will be warned. Users continuing after the warning will be blocked.
===Usernames===
Any username that is explicit, rude, inappropriate, derogatory, or in any way inappropriate will result in the account under the inappropriate username being permanently blocked. Usernames that advertise groups are also not allowed, nor are usernames that impersonate another user, a group, or well-known famous person. The user is allowed to make another account under a different and more appropriate name, however.
== Blocking ==
<small>A more in-depth blocking policy can be found [[Project:Policy/Blocking policy|here]]</small>
<br>
Blocks can be assigned to users by [[Project:Administrators|administrators]] when the situation calls for it. Certain blocks may mildly deviate from the general length for any given reason, albeit rarely. The third block given to any user for any reason will be '''indefinite'''.
=== Appeals ===
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
Only the blocked user can appeal their block, no third party may do so for another user.
== Other Policies ==
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
e195c37caf77b60cf3fdc36410fea7191073ba03
Template:Delete
10
91
234
2023-03-06T06:05:40Z
BlindCartographer
2
Created page with "{{Mbox | demospace = {{{demospace|}}} main | type = delete | image = [[File:Ambox warning.png|45px|link=Category:Candidates for deletion]] | text = <center>'''This article is a candidate for deletion.'''</center> This page has been marked as a candidate for deletion by a member of the community. {{#if: {{{1|}}}| for the following reason(s):'''{{{1}}}.|'''}} If you want to discuss the potential deletion of this page or contest the potential deletion, please visit..."
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for deletion]]
| text = <center>'''This article is a candidate for deletion.'''</center>
This page has been marked as a candidate for deletion by a member of the community. {{#if: {{{1|}}}| for the following reason(s):'''{{{1}}}.|'''}}
If you want to discuss the potential deletion of this page or contest the potential deletion, please visit the pages talk page or improve the page and remove the '''<code><nowiki>{{delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for deletion]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
9a8d9454fcd018471303f1bc0bebe172de49f76c
235
234
2023-03-06T06:05:52Z
BlindCartographer
2
Protected "[[Template:Delete]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for deletion]]
| text = <center>'''This article is a candidate for deletion.'''</center>
This page has been marked as a candidate for deletion by a member of the community. {{#if: {{{1|}}}| for the following reason(s):'''{{{1}}}.|'''}}
If you want to discuss the potential deletion of this page or contest the potential deletion, please visit the pages talk page or improve the page and remove the '''<code><nowiki>{{delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for deletion]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
9a8d9454fcd018471303f1bc0bebe172de49f76c
Template:Speedy delete
10
92
236
2023-03-06T06:11:16Z
BlindCartographer
2
Created page with "{{Mbox | demospace = {{{demospace|}}} main | type = delete | image = [[File:Ambox warning.png|45px|link=Category:Candidates for speedy deletion]] | text = <center>'''This article is a candidate for speedy deletion.'''</center> This page has been marked as a candidate for speedy deletion by a member of the community. That means it is in '''extreme''' violations of the rules. {{#if: {{{1|}}}| It is marked as such for the following reason(s):'''{{{1}}}.|'''}} <br /..."
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for speedy deletion]]
| text = <center>'''This article is a candidate for speedy deletion.'''</center>
This page has been marked as a candidate for speedy deletion by a member of the community. That means it is in '''extreme''' violations of the rules. {{#if: {{{1|}}}| It is marked as such for the following reason(s):'''{{{1}}}.|'''}} <br />
If you want to discuss the potential deletion of this page (whether it be to contest the deletion or give extra reasoning not covered by the reasons given above), please visit the pages talk page, or improve the page and remove the '''<code><nowiki>{{delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for speedy deletion]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
be85cccb83daf6e6541da0a2fe3a68463396d14e
237
236
2023-03-06T06:11:28Z
BlindCartographer
2
Protected "[[Template:Speedy delete]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for speedy deletion]]
| text = <center>'''This article is a candidate for speedy deletion.'''</center>
This page has been marked as a candidate for speedy deletion by a member of the community. That means it is in '''extreme''' violations of the rules. {{#if: {{{1|}}}| It is marked as such for the following reason(s):'''{{{1}}}.|'''}} <br />
If you want to discuss the potential deletion of this page (whether it be to contest the deletion or give extra reasoning not covered by the reasons given above), please visit the pages talk page, or improve the page and remove the '''<code><nowiki>{{delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for speedy deletion]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
be85cccb83daf6e6541da0a2fe3a68463396d14e
Template:Cleanup
10
93
238
2023-03-06T06:16:28Z
BlindCartographer
2
Created page with "{{Mbox | demospace = {{{demospace|}}} main | type = content | image = [[File:Ambox important.webp|45px|link=Category:Candidates for cleanup]] | text = <center>'''This article is a candidate for cleanup.'''</center> This article requires some cleaning up to meet the wiki's [[Project:Editing manual|quality standards]]. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!] '''Reason:''' {{#if: {{{1|..."
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = content
| image = [[File:Ambox important.webp|45px|link=Category:Candidates for cleanup]]
| text = <center>'''This article is a candidate for cleanup.'''</center>
This article requires some cleaning up to meet the wiki's [[Project:Editing manual|quality standards]]. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!]
'''Reason:''' {{#if: {{{1|}}}|''{{{1}}}''|''No reason given''}}.
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
f6267f7f82b3108d440f4a4ef8d191cbedee8c66
239
238
2023-03-06T06:16:38Z
BlindCartographer
2
Protected "[[Template:Cleanup]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = content
| image = [[File:Ambox important.webp|45px|link=Category:Candidates for cleanup]]
| text = <center>'''This article is a candidate for cleanup.'''</center>
This article requires some cleaning up to meet the wiki's [[Project:Editing manual|quality standards]]. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!]
'''Reason:''' {{#if: {{{1|}}}|''{{{1}}}''|''No reason given''}}.
| small = {{{small|left}}} / left / no
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
f6267f7f82b3108d440f4a4ef8d191cbedee8c66
Template:Button
10
88
240
213
2023-03-06T06:38:10Z
BlindCartographer
2
wikitext
text/x-wiki
<span class="mw-ui-button {{#switch: {{{color|white}}} | red = mw-ui-destructive | green = mw-ui-progressive | white = | blue = mw-ui-progressive}}" role="button" aria-disabled="false">{{{text|{{{1|Button text}}}}}}</span><noinclude>{{Documentation}}
</noinclude>
65daa5cd0dc70790380e7f7ee00cd9dd2c9d4568
Game Development Wiki:Administrator Noticeboard
4
86
241
214
2023-03-06T06:44:26Z
BlindCartographer
2
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|Delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center><div class="plainlinks">[{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}} {{Button|Add new report|color=blue}}]</div></center>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
1149c86f47736f4129071afe6b78325c985ef9cd
242
241
2023-03-06T06:44:33Z
BlindCartographer
2
/* Test */ new section
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|Delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center><div class="plainlinks">[{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}} {{Button|Add new report|color=blue}}]</div></center>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
== Test ==
Test [[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]]) 06:44, 6 March 2023 (UTC)
6c040fe9f48f00596a942de2b29297dc6a97c56b
243
242
2023-03-06T06:45:06Z
BlindCartographer
2
Undo revision 242 by [[Special:Contributions/BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]])
wikitext
text/x-wiki
The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|Delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center><div class="plainlinks">[{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}} {{Button|Add new report|color=blue}}]</div></center>
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
1149c86f47736f4129071afe6b78325c985ef9cd
File:Unity logo.png
6
94
244
2023-03-06T17:48:42Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:gdscript.png
6
95
245
2023-03-06T17:55:13Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Infobox programming language
10
96
246
2023-03-06T17:55:28Z
BlindCartographer
2
Created page with "<infobox> <title source="title1"> <default>{{PAGENAME}}</default> </title> <image source="image1"> <caption source="caption1"/> </image> <data source="filename_extension"> <label>Filename extension</label> </data> <data source="format"> <label>Format</label> </data> <data source="developer(s)"> <label>Developer(s)</label> </data> <data source="initial_release"> <label>Initial release</label> </data> <data source="latest_r..."
wikitext
text/x-wiki
<infobox>
<title source="title1">
<default>{{PAGENAME}}</default>
</title>
<image source="image1">
<caption source="caption1"/>
</image>
<data source="filename_extension">
<label>Filename extension</label>
</data>
<data source="format">
<label>Format</label>
</data>
<data source="developer(s)">
<label>Developer(s)</label>
</data>
<data source="initial_release">
<label>Initial release</label>
</data>
<data source="latest_release">
<label>Latest release</label>
</data>
</infobox>
b07deaff3b3b2f2b473ccb13144e7d46c2a0503b
247
246
2023-03-06T17:55:54Z
BlindCartographer
2
Protected "[[Template:Infobox programming language]]": Important to wiki ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
wikitext
text/x-wiki
<infobox>
<title source="title1">
<default>{{PAGENAME}}</default>
</title>
<image source="image1">
<caption source="caption1"/>
</image>
<data source="filename_extension">
<label>Filename extension</label>
</data>
<data source="format">
<label>Format</label>
</data>
<data source="developer(s)">
<label>Developer(s)</label>
</data>
<data source="initial_release">
<label>Initial release</label>
</data>
<data source="latest_release">
<label>Latest release</label>
</data>
</infobox>
b07deaff3b3b2f2b473ccb13144e7d46c2a0503b
MediaWiki:Common.css
8
37
248
150
2023-03-06T18:07:05Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/** Mbox Styling **/
.mbox {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
display: flex;
position: relative;
background-color: #FBFBFB;
border: 1px solid #A2A9B1;
border-left-width: 8px;
border-left-color: #d6d6d6;
border-radius: 0px;
margin-bottom: 5px;
min-height: 32px;
}
.mbox.mbox-type-important {
border-left-color: var(--type-important);
}
.mbox.mbox-type-moderate {
border-left-color: var(--type-moderate);
}
.mbox.mbox-type-minor {
border-left-color: var(--type-minor);
}
.mbox__content {
display: table;
box-sizing: border-box;
width: 100%;
padding: 8px 15px;
}
.mbox__content__image {
display: table-cell;
width: 40px;
height: 100%;
text-align: center;
vertical-align: middle;
padding-right: 15px;
}
.mbox__content__wrapper {
display: table-cell;
vertical-align: middle;
}
.mbox__content__header {
display: block;
font-weight: bold;
}
.mbox__content__text {
display: block;
}
.mbox__content__text__comment {
font-size: small;
}
.mbox__content__aside {
display: table-cell;
width: 100px;
vertical-align: middle;
text-align: center;
padding-left: 15px;
border-left: 1px solid #d6d6d6;
}
.mbox__close {
position: absolute;
right: 0;
top: 0;
padding: 2px 7px;
font-weight: bold;
font-size: 16px;
color: #bbb;
cursor: pointer;
transition: all .15s ease-in;
}
.mbox__close:hover {
color: #777;
}
.mbox__close:after {
content: '×';
}
.mw-collapsed + .mbox__close {
transform: rotate(45deg);
padding: 4px 7px 5px 2px;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
1a01af75de61688f66e21c52f63b3fc4e42b91b4
249
248
2023-03-06T18:08:07Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
11f20da3e61871a3071f7005f431e2ab11243874
Gdscript
0
97
250
2023-03-06T18:08:48Z
BlindCartographer
2
Created page with "{{Infobox programming language | title1= Gdscript | image1= [[File:gdscript.png]] | caption1= An example of Gdscript | filename_extension= .gd | format= Object-orientated programming | developer(s)=[[Godot]] | initial_release=January 14th, 2014 | latest_release= March 1st, 2023 }} {{Stub}} '''Gdscript'''"
wikitext
text/x-wiki
{{Infobox programming language
| title1= Gdscript
| image1= [[File:gdscript.png]]
| caption1= An example of Gdscript
| filename_extension= .gd
| format= Object-orientated programming
| developer(s)=[[Godot]]
| initial_release=January 14th, 2014
| latest_release= March 1st, 2023
}}
{{Stub}}
'''Gdscript'''
f77a83e9f47856f842dee26958f56919c50dc487
Game Development Wiki:About
4
62
251
216
2023-03-06T18:11:47Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, {{NUMBEROFFILES}} files, and {{NUMBEROFUSERS}} users. It was founded by [[User:BlindCartographer|BlindCartographer]] on February 7th, 2023, using the wiki-farm [[m:Miraheze|Miraheze]].
== History ==
The Gamedev Wiki was founded on February 7th, 2023, by [[User:BlindCartographer|BlindCartographer]]. It was founded in an attempt to give a central encyclopedia and advice hub about game development. The first article added was [[Gdscript]] on March 6th, 2023.
[[Category:{{SITENAME}}]]
cf880a4823fdab885e95c43ba22ee2f220193f56
255
251
2023-03-07T00:14:58Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox website
|title1=<center><span style="font-family: Righteous;">Gamedev Wiki</span></center>
|image1= [[File:Site-Logo.png|link=Main Page]]
|type_of_site= Encyclopedic Wiki
|language(s)=English
|written_in= [[wikipedia:Help:Wikitext|Wikitext]]
[[wikipedia:Lua (programming language)|Lua]]
[[wikipedia:CSS|CSS]]
[[wikipedia:JavaScript|JavaScript]]
[[wikipedia:PHP|PHP]]
|registration=Optional
|founded=February 7th, 2023
|founder(s)=[[User:BlindCartographer|BlindCartographer]]
|status=Active
|url= [[Main Page|gamedev.miraheze.org]]
}}
The '''Game Development Wiki''', better known as the '''Gamedev Wiki''', is an online encyclopedia about all things game development. Currently, it has {{NUMBEROFARTICLES}} articles, {{NUMBEROFFILES}} files, and {{NUMBEROFUSERS}} users. It was founded by [[User:BlindCartographer|BlindCartographer]] on February 7th, 2023, using the wiki-farm [[m:Miraheze|Miraheze]].
== History ==
The Gamedev Wiki was founded on February 7th, 2023, by [[User:BlindCartographer|BlindCartographer]]. It was founded in an attempt to give a central encyclopedia and advice hub about game development. The first article added was [[Gdscript]] on March 6th, 2023.
[[Category:{{SITENAME}}]]
9d794f14d99a61fbdfa97cf506fc74c787909fea
Tutorial:Installing Godot
3000
98
252
2023-03-06T21:45:15Z
BlindCartographer
2
Created page with "{{Tutorial page}}"
wikitext
text/x-wiki
{{Tutorial page}}
df74b8024a24b6f7e5bb2ea03dab3c68166322ab
253
252
2023-03-06T23:46:16Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tutorial page}}
[[Godot]] is an open-source, lightweight, and cross-platform game engine that allows the user to create and develop 2d and 3d video games. This article is a guide on how to '''install Godot''' and the most recent release of it.
== Downloading Godot ==
# Visit [https://godotengine.org/ godotengine.org].
[[Category:Tutorials]]
[[Category:Godot tutorials]]
[[Category:Installation tutorials]]
42ad6397a11f112dea47a8de198e2003fa5e2447
259
253
2023-03-07T00:21:09Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tutorial page}}
[[Godot]] is an open-source, lightweight, and cross-platform game engine that allows the user to create and develop 2d and 3d video games. This article is a guide on how to '''install Godot''' and the most recent release of it. This tutorial can also be used for updating Godot.
== Downloading Godot ==
# Visit [https://godotengine.org/ godotengine.org].
# Go to [https://godotengine.org/download godotengine.org/download] and download the latest version. It should automatically navigate to the version for your Operating System.
# Extract the .zip file and run Godot. It is self-contained and should not require and compiling.
== Updating Godot ==
[[File:godotimport.png|200px|thumb|right|The import button on Godot]]
# Follow the instructions above for [[Tutorial:Installing Godot#Downloading Godot|downloading Godot]].
# Do not delete any existing files or directories for any games you have developed on Godot.
# Open Godot and click the "Import" button, and import the directory containing the files for your game(s) that were on the previous edition of Godot.
== Notes ==
* Godot does not need to be compiled, only extracted from the .zip file. It can then be run directly afterwards.
== See also ==
[[Category:Godot tutorials]]
[[Category:Installation tutorials]]
20940587b15033b3215a0e511954a5f2fc33697b
264
259
2023-03-07T00:41:26Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tutorial page|status=approved}}
[[Godot]] is an open-source, lightweight, and cross-platform game engine that allows the user to create and develop 2d and 3d video games. This article is a guide on how to '''install Godot''' and the most recent release of it. This tutorial can also be used for updating Godot.
== Downloading Godot ==
# Visit [https://godotengine.org/ godotengine.org].
# Go to [https://godotengine.org/download godotengine.org/download] and download the latest version. It should automatically navigate to the version for your Operating System.
# Extract the .zip file and run Godot. It is self-contained and should not require and compiling.
== Updating Godot ==
[[File:godotimport.png|200px|thumb|right|The import button on Godot]]
# Follow the instructions above for [[Tutorial:Installing Godot#Downloading Godot|downloading Godot]].
# Do not delete any existing files or directories for any games you have developed on Godot.
# Open Godot and click the "Import" button, and import the directory containing the files for your game(s) that were on the previous edition of Godot.
== Notes ==
* Godot does not need to be compiled, only extracted from the .zip file. It can then be run directly afterwards.
== See also ==
[[Category:Godot tutorials]]
[[Category:Installation tutorials]]
727be268da2b03e027aa2b645b7d1e14df2cc068
Template:Tutorial page
10
89
254
221
2023-03-06T23:51:03Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status}}}|
----
{{#switch:{{{status}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">'''Unreviewed'''</span>
<includeonly>[[Category:Unreviewed tutorials]]</includeonly>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">'''Approved'''</span>
<includeonly>[[Category:Approved tutorials]]</includeonly>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">'''Under revision'''</span>
<includeonly>[[Category:Under revision tutorials]]</includeonly>
|disapproved=
'''Status:''' <span style="color: #ff0000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">'''Disapproved'''</span>
<includeonly>[[Category:Disapproved tutorials]]</includeonly>
}}
}}
|}
<includeonly>[[Category:Tutorials]]</includeonly>
<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
575ac246dc0ea835be38b07f886ce0499916d53d
257
254
2023-03-07T00:17:08Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 10px auto; padding: 2px; width: 60%; border-radius: 5px; border: 3px solid green;"
| rowspan="2" style="text-align: center; width: 15%"|[[File:Site-Icon.png|center|65px|link=Project:Tutorial articles]]
| style="text-align: left;"|'''This is a [[Project:Tutorial articles|Tutorial article]].'''
|- valign="middle"
|This article is a [[Project:Tutorial articles|Tutorial article]], which means it is meant as a guide on a certain part, idea, or method of game development.
{{#if: {{{status}}}|
----
{{#switch:{{{status}}}
|#default=
'''Status:''' <span style="color: #808080;" title="This tutorial has not yet been reviewed.">'''Unreviewed'''</span>
<includeonly>[[Category:Unreviewed tutorials]]</includeonly>
|approved=
'''Status:''' <span style="color: #07d100;" title="This tutorial has been approved">'''Approved'''</span>
<includeonly>[[Category:Approved tutorials]]</includeonly>
|under revision=
'''Status:''' <span style="color: #ff8000;" title="This tutorial is under review and may not meet up to our standards.">'''Under revision'''</span>
<includeonly>[[Category:Under revision tutorials]]</includeonly>
|disapproved=
'''Status:''' <span style="color: #ff0000;" title="This tutorial does not meet up to our standards and should be corrected as soon as possible.">'''Disapproved'''</span>
<includeonly>[[Category:Disapproved tutorials]]</includeonly>
}}
}}
|}
<includeonly>[[Category:Tutorials]]</includeonly>
<noinclude>
{{Documentation}}
[[Category:Templates|{{PAGENAME}}]]</noinclude>
ff2270ddb804981da222521a062494b4e33d35b2
Category:Templates
14
99
256
2023-03-07T00:15:38Z
BlindCartographer
2
Created page with "This category includes all [[mw:Help:Templates|templates]] on the [[Main Page|Game Development Wiki]]."
wikitext
text/x-wiki
This category includes all [[mw:Help:Templates|templates]] on the [[Main Page|Game Development Wiki]].
5b7cf7866c77d3e0be2c7828f753f1e094491b96
File:godotimport.png
6
100
258
2023-03-07T00:18:31Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Tutorial talk
10
101
260
2023-03-07T00:39:30Z
BlindCartographer
2
Created page with "{{Ombox |background=#F8EABA |border color=#C0C090 |image=[[File:Ambox important blue.svg|45px|link=]] |header=This is a tutorial talk page. |text=This talk page should be used for the discussion of '''[[Tutorial:{{BASEPAGENAME}}|{{BASEPAGENAME}}]]'''. If you have questions or are seeking further information about something that was not discussed enough in the main tutorial, please ask them here. Do not remove any questions on this page unless you plan on adding the answe..."
wikitext
text/x-wiki
{{Ombox
|background=#F8EABA
|border color=#C0C090
|image=[[File:Ambox important blue.svg|45px|link=]]
|header=This is a tutorial talk page.
|text=This talk page should be used for the discussion of '''[[Tutorial:{{BASEPAGENAME}}|{{BASEPAGENAME}}]]'''. If you have questions or are seeking further information about something that was not discussed enough in the main tutorial, please ask them here. Do not remove any questions on this page unless you plan on adding the answer and how to achieve it on the main article.
----
|comment= Please check to see if any available archives have the answers you seek before posting here.
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
677c9c8a5d077cb043e0cc8a1e1fdcd15ddb1e43
261
260
2023-03-07T00:39:41Z
BlindCartographer
2
Protected "[[Template:Tutorial talk]]" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
wikitext
text/x-wiki
{{Ombox
|background=#F8EABA
|border color=#C0C090
|image=[[File:Ambox important blue.svg|45px|link=]]
|header=This is a tutorial talk page.
|text=This talk page should be used for the discussion of '''[[Tutorial:{{BASEPAGENAME}}|{{BASEPAGENAME}}]]'''. If you have questions or are seeking further information about something that was not discussed enough in the main tutorial, please ask them here. Do not remove any questions on this page unless you plan on adding the answer and how to achieve it on the main article.
----
|comment= Please check to see if any available archives have the answers you seek before posting here.
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
677c9c8a5d077cb043e0cc8a1e1fdcd15ddb1e43
262
261
2023-03-07T00:40:05Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|background=#F8EABA
|border color=#C0C090
|image=[[File:Ambox important blue.svg|45px|link=]]
|header=This is a tutorial talk page.
|text=This talk page should be used for the discussion of '''[[Tutorial:{{BASEPAGENAME}}|{{BASEPAGENAME}}]]'''. If you have questions or are seeking further information about something that was not discussed enough in the main tutorial, please ask them here. Do not remove any questions on this page unless you plan on adding the answer and how to achieve it on the main article.
----
|comment= Please check to see if any available archives have the answers you seek before posting here.
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:Talk page management templates]]
</noinclude>
c3a20f496ce93c944a3f6b4c4523d765deb144e6
Tutorial talk:Installing Godot
3001
102
263
2023-03-07T00:40:40Z
BlindCartographer
2
Created page with "{{Tutorial talk}}"
wikitext
text/x-wiki
{{Tutorial talk}}
2bcb2458642cacc45f118f8aebf0ffdc0fcea10a
Template:Tutorial talk/doc
10
103
265
2023-03-07T00:44:40Z
BlindCartographer
2
Created page with "The '''Tutorial talk''' template is meant to be added at the top of all Tutorial talk pages. It details what to do when you have come to ask a question about the main tutorial. == Usage == If you want to add this template to a talk page, you may add {{Tlx|Tutorial talk}} at the top of the discussion page."
wikitext
text/x-wiki
The '''Tutorial talk''' template is meant to be added at the top of all Tutorial talk pages. It details what to do when you have come to ask a question about the main tutorial.
== Usage ==
If you want to add this template to a talk page, you may add {{Tlx|Tutorial talk}} at the top of the discussion page.
a6c1220a6f6fa5e7a48789ad587c5e6fac2b7c56
Module:Userbox
828
104
266
2023-03-07T00:48:16Z
BlindCartographer
2
Created page with "-- This module implements {{userbox}}. local categoryHandler = require('Module:Category handler').main local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function checkNum(val, default) -- Checks whether a value is a number greater than or equal to zero. If so, -- returns it as a number. If not, returns a default valu..."
Scribunto
text/plain
-- This module implements {{userbox}}.
local categoryHandler = require('Module:Category handler').main
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-s'] or args[9], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-c'] or args[6] or args['id1-c'] or args[1] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-c'] or args[2] or '#eeeeee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args['info-fc'] or args[8] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args['id1-c'] or args[1] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNum(args['id1-s'], 14)
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args['id2-c'] or args[7] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNum(args['id2-s'], 14)
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:attr('role', 'presentation')
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('td')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('td')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
local legible = true
local contrast = require('Module:Color contrast')._ratio
local function has_text(wikitext)
wikitext = wikitext:gsub("]]", "|]]")
wikitext = wikitext:gsub("%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]", "")
wikitext = wikitext:gsub("%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]", "")
wikitext = wikitext:gsub("%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]", "")
return mw.text.trim(wikitext) ~= ""
end
if contrast { data.infoColor, data.backgroundColor, error = 0 } < 4.5 then
legible = false
end
-- For bold text >= 14pt, requirement is only 3.
local idContrastThreshold = 4.5
local id2ContrastThreshold = 4.5
if (data.idFontSize or 0) >= 14 then
idContrastThreshold = 3
end
if (data.id2FontSize or 0) >= 14 then
id2ContrastThreshold = 3
end
if data.showId and contrast { data.idColor, data.idBackgroundColor, error = 0 } < idContrastThreshold then
if has_text(data.id or "") then
legible = false
end
end
if data.showId2 and contrast { data.id2Color, data.id2BackgroundColor, error = 0 } < id2ContrastThreshold then
if has_text(data.id2 or "") then
legible = false
end
end
if not legible then
root:wikitext('[[Category:Userboxes with insufficient color contrast]]')
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories from [[Module:Category handler]].
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
cats[#cats + 1] = args.usercategory4
cats[#cats + 1] = args.usercategory5
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.nocat = args.nocat
chargs.main = '[[Category:Pages with templates in the wrong namespace]]'
if args.notcatsubpages then
chargs.subpage = 'no'
end
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
chargs.user = user
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
chargs.template = template
return categoryHandler(chargs)
end
return p
3afddd38f65cb302185911fa9957526a85855673
268
266
2023-03-07T01:20:32Z
BlindCartographer
2
Scribunto
text/plain
-- This module implements {{userbox}}.
local categoryHandler = require('Module:Category handler').main
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-s'] or args[9], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-c'] or args[6] or args['id1-c'] or args[1] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-c'] or args[2] or '#eeeeee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args['info-fc'] or args[8] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args['id1-c'] or args[1] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNum(args['id1-s'], 14)
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args['id2-c'] or args[7] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNum(args['id2-s'], 14)
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:attr('role', 'presentation')
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('td')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('td')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories from [[Module:Category handler]].
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
cats[#cats + 1] = args.usercategory4
cats[#cats + 1] = args.usercategory5
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.nocat = args.nocat
chargs.main = '[[Category:Pages with templates in the wrong namespace]]'
if args.notcatsubpages then
chargs.subpage = 'no'
end
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
chargs.user = user
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
chargs.template = template
return categoryHandler(chargs)
end
return p
9d3887b42e51595757267f56521eb259b941a71b
Template:Userbox
10
105
267
2023-03-07T00:49:58Z
BlindCartographer
2
Created page with "{{#invoke:userbox|userbox}}<noinclude> {{Documentation}} [[Category:Templates]] [[Category:Userboxes]] </noinclude>"
wikitext
text/x-wiki
{{#invoke:userbox|userbox}}<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:Userboxes]]
</noinclude>
81b85635425ca6c8e2515620b25e655c8dc9bcae
269
267
2023-03-07T01:20:50Z
BlindCartographer
2
wikitext
text/x-wiki
{{#invoke:Userbox|userbox}}<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:Userboxes]]
</noinclude>
58666540ec0da88830becc75cf1630401c1e370f
270
269
2023-03-07T01:21:24Z
BlindCartographer
2
Protected "[[Template:Userbox]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{#invoke:Userbox|userbox}}<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:Userboxes]]
</noinclude>
58666540ec0da88830becc75cf1630401c1e370f
File:Gamedev-admin-logo.png
6
106
271
2023-03-07T02:31:16Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
272
271
2023-03-07T02:31:30Z
BlindCartographer
2
Protected "[[File:Gamedev-admin-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-moderator-logo.png
6
107
273
2023-03-07T02:31:58Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
274
273
2023-03-07T02:32:13Z
BlindCartographer
2
Protected "[[File:Gamedev-moderator-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-bureaucrat-logo.png
6
108
275
2023-03-07T02:32:35Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
276
275
2023-03-07T02:32:56Z
BlindCartographer
2
Protected "[[File:Gamedev-bureaucrat-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-manager-logo.png
6
109
277
2023-03-07T02:33:41Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
278
277
2023-03-07T02:33:56Z
BlindCartographer
2
Protected "[[File:Gamedev-manager-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-rollbacker-logo.png
6
110
279
2023-03-07T02:34:21Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-interfaceadmin-logo.png
6
111
280
2023-03-07T02:34:44Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Gamedev-forumstaff-logo.png
6
112
281
2023-03-07T02:35:06Z
BlindCartographer
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Module:Userbox
828
104
282
268
2023-03-07T02:43:40Z
BlindCartographer
2
Scribunto
text/plain
-- This module implements {{userbox}}.
local categoryHandler = require('Module:Category handler').main
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'right'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-s'] or args[9], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-c'] or args[6] or args['id1-c'] or args[1] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-c'] or args[2] or '#eeeeee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args['info-fc'] or args[8] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args['id1-c'] or args[1] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNum(args['id1-s'], 14)
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args['id2-c'] or args[7] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNum(args['id2-s'], 14)
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:attr('role', 'presentation')
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('td')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('td')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories from [[Module:Category handler]].
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
cats[#cats + 1] = args.usercategory4
cats[#cats + 1] = args.usercategory5
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.nocat = args.nocat
chargs.main = '[[Category:Pages with templates in the wrong namespace]]'
if args.notcatsubpages then
chargs.subpage = 'no'
end
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
chargs.user = user
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
chargs.template = template
return categoryHandler(chargs)
end
return p
578ccaa56382d4652effaa4dd90cdd9ec69a9a31
283
282
2023-03-07T02:47:31Z
BlindCartographer
2
Scribunto
text/plain
-- This module implements {{userbox}}.
local categoryHandler = require('Module:Category handler').main
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'right'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-s'] or args[9], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-c'] or args[6] or args['id1-c'] or args[1] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-c'] or args[2] or '#eeeeee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args['info-fc'] or args[8] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args['id1-c'] or args[1] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNum(args['id1-s'], 14)
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args['id2-c'] or args[7] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNum(args['id2-s'], 14)
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14)
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:attr('role', 'presentation')
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('td')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('td')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize .. 'pt')
:css('font-weight', 'bold')
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories from [[Module:Category handler]].
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
cats[#cats + 1] = args.usercategory4
cats[#cats + 1] = args.usercategory5
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.nocat = args.nocat
chargs.main = '[[Category:Pages with templates in the wrong namespace]]'
if args.notcatsubpages then
chargs.subpage = 'no'
end
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
chargs.user = user
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
chargs.template = template
return categoryHandler(chargs)
end
return p
03a5c2db19ed9fa531a96ba68339b60a3c012306
Template:Userbox administrator
10
113
284
2023-03-07T02:47:58Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-admin-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Administrators|administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullur..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-admin-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Administrators|administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
699782fdb64a038d7664ff6eb4a79f37de09b90b
285
284
2023-03-07T02:48:13Z
BlindCartographer
2
Protected "[[Template:Userbox administrator]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-admin-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Administrators|administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
699782fdb64a038d7664ff6eb4a79f37de09b90b
287
285
2023-03-07T02:53:46Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-admin-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Administrators|administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
98e8de19d1457844ece9e5f4fba6b6dfaffcf900
305
287
2023-03-07T03:10:54Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-admin-logo.png|43px|link=Project:Administrators]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Administrators|administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Adminstrators]]</includeonly>
ac36de44ba2fbe3e3beef9f126d4d668abc9b352
Template:Userbox wiki manager
10
114
286
2023-03-07T02:52:30Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-manager-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is the '''[[Project:Staff#Executive Wiki Manager|wiki manager]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} of the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainl..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-manager-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is the '''[[Project:Staff#Executive Wiki Manager|wiki manager]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} of the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Project:Staff#Executive Wiki Manager|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
ed179d69b8c0103206a2bc695edcc5e52be494ab
289
286
2023-03-07T02:55:30Z
BlindCartographer
2
Protected "[[Template:Userbox wiki manager]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-manager-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is the '''[[Project:Staff#Executive Wiki Manager|wiki manager]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} of the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Project:Staff#Executive Wiki Manager|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
ed179d69b8c0103206a2bc695edcc5e52be494ab
302
289
2023-03-07T03:08:47Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-manager-logo.png|43px|link=Project:Staff#Execute Wiki Manager]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is the '''[[Project:Staff#Executive Wiki Manager|wiki manager]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} of the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Project:Staff#Executive Wiki Manager|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
73c5f45e52dd10893175f9338c0c0199dc896d4f
307
302
2023-03-07T14:03:13Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-manager-logo.png|43px|link=Project:Staff#Executive Wiki Manager]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is the '''[[Project:Staff#Executive Wiki Manager|wiki manager]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} of the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Project:Staff#Executive Wiki Manager|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
f5403a638fd426a0602f6cc36f11225fb19a71c1
Template:Userbox bureaucrat
10
115
288
2023-03-07T02:55:09Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-bureaucrat-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Bureaucrat|bureaucrat]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fu..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-bureaucrat-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Bureaucrat|bureaucrat]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
dd4fdd64312c6aadbc99c8180f8144530546ba01
290
288
2023-03-07T02:56:07Z
BlindCartographer
2
Protected "[[Template:Userbox bureaucrat]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-bureaucrat-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Bureaucrat|bureaucrat]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
dd4fdd64312c6aadbc99c8180f8144530546ba01
303
290
2023-03-07T03:09:24Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-bureaucrat-logo.png|43px|link=Project:Staff#Bureaucrats]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Bureaucrat|bureaucrat]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Bureaucrats]]</includeonly>
3d8ec110a2bc5bd789990f7cac27232823d54aa4
304
303
2023-03-07T03:10:08Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-bureaucrat-logo.png|43px|link=Project:Staff#Bureaucrats]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is a '''[[Project:Staff#Bureaucrat|bureaucrat]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Bureaucrats]]</includeonly>
e4c09a358e26ac302633bc728c13a63af7a0ee67
Template:Userbox moderator
10
116
291
2023-03-07T02:58:08Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-moderator-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Moderator|moderator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullu..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-moderator-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Moderator|moderator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Catgeory:Moderators]]</includeonly>
f86f3bbbdd59eb3c4e3d086bd97b9052890f171e
292
291
2023-03-07T02:58:24Z
BlindCartographer
2
Protected "[[Template:Userbox moderator]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-moderator-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Moderator|moderator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Catgeory:Moderators]]</includeonly>
f86f3bbbdd59eb3c4e3d086bd97b9052890f171e
300
292
2023-03-07T03:07:03Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-moderator-logo.png|43px|link=Project:Staff#Moderator]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is a '''[[Project:Staff#Moderator|moderator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Catgeory:Moderators]]</includeonly>
708fbe2c78ad4b09d258fc7f33881e5d1c76af27
301
300
2023-03-07T03:07:14Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-moderator-logo.png|43px|link=Project:Staff#Moderator]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is a '''[[Project:Staff#Moderator|moderator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Moderators]]</includeonly>
aa0699d1bd8ee5850dd0aed5ae2b6d85282c9982
Template:Userbox interface administrator
10
117
293
2023-03-07T03:01:10Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-interfaceadmin-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Interface Administrator|interface administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-interfaceadmin-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Interface Administrator|interface administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
e5b3babbdc040bba0820ecfe4a41b2a364ee6095
294
293
2023-03-07T03:01:20Z
BlindCartographer
2
Protected "[[Template:Userbox interface administrator]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-interfaceadmin-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Interface Administrator|interface administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
e5b3babbdc040bba0820ecfe4a41b2a364ee6095
299
294
2023-03-07T03:06:16Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-interfaceadmin-logo.png|43px|link=Project:Staff#Interface Administrator]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Interface Administrator|interface administrator]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Interface administrators]]</includeonly>
a72a3e4c2d96d7efcc71330683f86b82eea454d7
Template:Userbox rollbacker
10
118
295
2023-03-07T03:02:12Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Gamedev-rollbacker-logo.png|43px]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Rollbacker|rollbacker]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fu..."
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-rollbacker-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Rollbacker|rollbacker]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
ab6896dcbd15bd7dccd1d6aa2b331d26c6d6a3b1
296
295
2023-03-07T03:02:27Z
BlindCartographer
2
Protected "[[Template:Userbox rollbacker]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-rollbacker-logo.png|43px]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Rollbacker|rollbacker]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
ab6896dcbd15bd7dccd1d6aa2b331d26c6d6a3b1
297
296
2023-03-07T03:03:55Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-rollbacker-logo.png|43px|link=Project:Staff#Rollbacker]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is an '''[[Project:Staff#Rollbacker|rollbacker]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Rollbackers]]</includeonly>
95e568b5a596eb16231cfc5986770d618439e2fa
298
297
2023-03-07T03:05:19Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Gamedev-rollbacker-logo.png|43px|link=Project:Staff#Rollbacker]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info = {{#if:{{{RFA|}}}|[[{{{RFA}}}|This user]]|This user}} {{#if:{{{noannounce|}}}|don't need no stinkin' badges.|is a '''[[Project:Staff#Rollbacker|rollbacker]]'''{{#if:{{{othertext|}}}| {{{othertext}}}|}} on the {{{1|[[Main Page|Game Development Wiki]]}}}. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:{{{lang_code|en}}}:Special:UserRights|user={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=en}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([[Special:UserRights/{{{username|{{BASEPAGENAME}}}}}|<span style="color:#5871C6;">verify</span>]])</span>}}
}}
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Rollbackers]]</includeonly>
ee12fd0f8e9fce5d6af724777ae78993b20f5bc4
User:BlindCartographer
2
5
306
186
2023-03-07T03:13:17Z
BlindCartographer
2
wikitext
text/x-wiki
Heyo, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here.
{{Userbox wiki manager}}<br />
<br>
{{Userbox bureaucrat}}<br />
<br>
{{Userbox administrator}}<br />
<br>
249ed62442face6b1a0fa3813df84bb83b0637d6
319
306
2023-03-07T18:14:02Z
BlindCartographer
2
wikitext
text/x-wiki
Heyo, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here. Feel free to contact me if you need help with anything!
{{Userbox group
|title=My userboxes
|collapse=0
|userboxes=
{{Userbox wiki manager}}
{{Userbox bureaucrat}}
{{Userbox administrator}}
}}
== About Me ==
b4336fef8f374dcaecc85bb1b79aea33c28e5a5c
322
319
2023-03-07T18:19:23Z
BlindCartographer
2
wikitext
text/x-wiki
{{Userbox group
|title=My userboxes
|collapse=0
|userboxes=
{{Userbox wiki manager}}
{{Userbox bureaucrat}}
{{Userbox administrator}}
}}
Heyo, I'm BlindCartographer, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here. Feel free to contact me if you need help with anything!
== About Me ==
5e17e61f5afb205d82dc20fa871f07e0ef344686
Template:Userbox group
10
119
308
2023-03-07T17:50:13Z
BlindCartographer
2
Created page with "<div style="display: flex; justify-content: center;"> <onlyinclude><templatestyles src="Template:Userbox group/styles.css" /><!-- --><table class="userbox-group mw-collapsible <includeonly>{{#if:{{Yesno|{{{collapse|1}}}}}|mw-collapsed}}</includeonly>" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}" {{#if:{{{style|}}}|style="{{{style|}}}"}}><!-- --><tr class="display-table-row"><!-- --><th class="ubx-group-header"><div class="header-text-container">{{#if:{..."
wikitext
text/x-wiki
<div style="display: flex; justify-content: center;">
<onlyinclude><templatestyles src="Template:Userbox group/styles.css" /><!--
--><table class="userbox-group mw-collapsible <includeonly>{{#if:{{Yesno|{{{collapse|1}}}}}|mw-collapsed}}</includeonly>" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}" {{#if:{{{style|}}}|style="{{{style|}}}"}}><!--
--><tr class="display-table-row"><!--
--><th class="ubx-group-header"><div class="header-text-container">{{#if:{{{title|}}}|{{{title}}}|Other userboxes}}</div></th><!--
--></tr><!--
--><tr><!--
--><td class="ubx-group-body"><div class="flex-container">
{{{1|{{{userboxes}}}}}}<nowiki>
</nowiki></div></td><!--
--></tr><!--
-->{{#if:{{{footer|<noinclude>1</noinclude>}}}|<!--
--><tr><!--
--><td class="ubx-group-footer">{{{footer}}}</td><!--
--></tr><!--
-->}}<!--
--></table></onlyinclude>
</div>
{{Documentation}}
[[Category:Templates]]
6b762ed86f96c6cfaaa4b97b57715175ac72ace1
314
308
2023-03-07T18:02:03Z
BlindCartographer
2
Protected "[[Template:Userbox group]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div style="display: flex; justify-content: center;">
<onlyinclude><templatestyles src="Template:Userbox group/styles.css" /><!--
--><table class="userbox-group mw-collapsible <includeonly>{{#if:{{Yesno|{{{collapse|1}}}}}|mw-collapsed}}</includeonly>" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}" {{#if:{{{style|}}}|style="{{{style|}}}"}}><!--
--><tr class="display-table-row"><!--
--><th class="ubx-group-header"><div class="header-text-container">{{#if:{{{title|}}}|{{{title}}}|Other userboxes}}</div></th><!--
--></tr><!--
--><tr><!--
--><td class="ubx-group-body"><div class="flex-container">
{{{1|{{{userboxes}}}}}}<nowiki>
</nowiki></div></td><!--
--></tr><!--
-->{{#if:{{{footer|<noinclude>1</noinclude>}}}|<!--
--><tr><!--
--><td class="ubx-group-footer">{{{footer}}}</td><!--
--></tr><!--
-->}}<!--
--></table></onlyinclude>
</div>
{{Documentation}}
[[Category:Templates]]
6b762ed86f96c6cfaaa4b97b57715175ac72ace1
Template:Userbox group/styles.css
10
121
311
2023-03-07T17:54:40Z
BlindCartographer
2
Created page with ".userbox-group { /* .mw-babel-wrapper */ background-color: #FFF; border: 1px solid #99B3FF; border-spacing: 0; box-sizing: border-box; padding: 0; /* .userbox-group */ text-align: left; width: 246px; max-width: 246px; margin: 1px -3px; } .userbox-group .display-table-row { display: table-row !important; } .userbox-group .ubx-group-header { /* .mw-babel-header */ font-weight: bold; } .userbox-group .ubx-group-header > .header-text-container { margin: 0 aut..."
wikitext
text/x-wiki
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
max-width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
max-width: -webkit-max-content; /* Chrome < 46; Safari < 11 */
max-width: -moz-max-content; /* Firefox < 66 */
max-width: max-content;
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
fd40db802bfdc85549fa65ad808468e3d6f18be1
312
311
2023-03-07T18:01:25Z
BlindCartographer
2
wikitext
text/x-wiki
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
a6ae057287cd75fbf7b6fc4c635ef868ef076600
313
312
2023-03-07T18:01:32Z
BlindCartographer
2
BlindCartographer changed the content model of the page [[Template:Userbox group/styles.css]] from "wikitext" to "Sanitized CSS"
sanitized-css
text/css
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
a6ae057287cd75fbf7b6fc4c635ef868ef076600
315
313
2023-03-07T18:05:52Z
BlindCartographer
2
sanitized-css
text/css
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
max-width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
max-width: max-content;
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
51fb7cb3aecfeb08bf4f4287343b458075afa682
318
315
2023-03-07T18:13:46Z
BlindCartographer
2
sanitized-css
text/css
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: right;
width: 246px;
max-width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
max-width: max-content;
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
9049861f751cc1e2f1278f38689fe813641a67f6
320
318
2023-03-07T18:18:14Z
BlindCartographer
2
Undo revision 318 by [[Special:Contributions/BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]])
sanitized-css
text/css
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
max-width: 246px;
margin: 1px -3px;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
max-width: max-content;
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
51fb7cb3aecfeb08bf4f4287343b458075afa682
321
320
2023-03-07T18:18:37Z
BlindCartographer
2
sanitized-css
text/css
.userbox-group {
/* .mw-babel-wrapper */
background-color: #FFF;
border: 1px solid #99B3FF;
border-spacing: 0;
box-sizing: border-box;
padding: 0;
/* .userbox-group */
text-align: left;
width: 246px;
max-width: 246px;
margin: 1px -3px;
float: right;
}
.userbox-group .display-table-row {
display: table-row !important;
}
.userbox-group .ubx-group-header {
/* .mw-babel-header */
font-weight: bold;
}
.userbox-group .ubx-group-header > .header-text-container {
margin: 0 auto;
/* https://caniuse.com/mdn-css_properties_width_max-content */
max-width: max-content;
text-align: center;
}
.userbox-group .ubx-group-body {
padding: 1px;
}
.userbox-group .ubx-group-body > .flex-container {
align-items: center;
display: flex;
flex-direction: column;
}
.userbox-group .ubx-group-footer {
/* .mw-babel-footer */
font-size: 85%;
font-weight: normal;
text-align: center;
}
c49c96c8b6e1257c47bd253962c9ae92f5feb357
Template:Yesno
10
122
316
2023-03-07T18:06:41Z
BlindCartographer
2
Created page with "{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }} |no |n |false |0 = {{{no|<!-- null -->}}} | = {{{blank|{{{no|<!-- null -->}}}}}} |¬ = {{{¬|}}} |yes |y |true |1 = {{{yes|yes}}} |#default = {{{def|{{{yes|yes}}}}}} }}<noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }}
|no
|n
|false
|0 = {{{no|<!-- null -->}}}
| = {{{blank|{{{no|<!-- null -->}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|true
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
166fab9e5411aacd02ca4c9e93fbc7bf6bcf26ac
317
316
2023-03-07T18:07:00Z
BlindCartographer
2
Protected "[[Template:Yesno]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }}
|no
|n
|false
|0 = {{{no|<!-- null -->}}}
| = {{{blank|{{{no|<!-- null -->}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|true
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
166fab9e5411aacd02ca4c9e93fbc7bf6bcf26ac
Template:Mbox/styles.css
10
79
323
197
2023-03-07T18:23:29Z
BlindCartographer
2
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
table.ambox-wikinotice {
/* @noflip */
border-left: 10px solid #008000; /* Green */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
a9f0e74f4beba8a91747ad07b48b4766091b007b
Module:Message box/ambox.css
828
82
324
202
2023-03-07T18:25:35Z
BlindCartographer
2
sanitized-css
text/css
/**
* {{ambox}} (article message box) styles
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
table.ambox {
/* 10% = Will not overlap with other elements */
margin: 0 10%;
border: 1px solid #a2a9b1;
/* Default "notice" blue */
border-left: 10px solid #36c;
background-color: #fbfbfb;
box-sizing: border-box;
}
/* Single border between stacked boxes. */
table.ambox + table.ambox,
table.ambox + link + table.ambox,
table.ambox + style + table.ambox {
margin-top: -1px;
}
/* An empty narrow cell */
.ambox td.mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
/* The message body cell(s) */
.ambox th.mbox-text,
.ambox td.mbox-text {
border: none;
/* 0.5em left/right */
padding: 0.25em 0.5em;
/* Make all mboxes the same width regardless of text length */
width: 100%;
}
/* The left image cell */
.ambox td.mbox-image {
/* 0.5em left, 0px right */
/* @noflip */
padding: 2px 0 2px 0.5em;
}
/* The right image cell */
.ambox td.mbox-imageright {
/* 0px left, 0.5em right */
/* @noflip */
padding: 2px 0.5em 2px 0;
}
table.ambox-notice {
/* Blue */
border-left-color: #36c;
}
table.ambox-speedy {
/* Pink */
background-color: #fee7e6;
}
table.ambox-delete,
table.ambox-speedy {
/* Red */
border-left-color: #b32424;
}
table.ambox-content {
/* Orange */
border-left-color: #f28500;
}
table.ambox-style {
/* Yellow */
border-left-color: #fc3;
}
table.ambox-move {
/* Purple */
border-left-color: #9932cc;
}
table.ambox-protection {
/* Gray-gold */
border-left-color: #a2a9b1;
}
table.ambox-wikinotice {
/* Gray-gold */
border-left-color: #008000;
}
/**
* {{ambox|small=1}} styles
*
* These ".mbox-small" classes must be placed after all other
* ".ambox" classes. "html body.mediawiki .ambox"
* is so they override both "table.ambox + table.ambox"
* and "table.ambox + link + table.ambox" above.
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
/* For the "small=yes" option. */
html body.mediawiki .ambox.mbox-small {
clear: right;
float: right;
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
/* For the "small=left" option. */
html body.mediawiki .ambox.mbox-small-left {
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
f3a0141114faec8e3979eafc474ced4dbe10d0c4
Module:Message box/configuration
828
19
325
198
2023-03-07T18:27:12Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
},
wikinotice = {
class = 'ambox-wikinotice',
image = 'Site-Icon.png'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
8193a825c7d9b03174ce3095820a8a272995ea7e
Template:Policy page
10
43
326
206
2023-03-07T18:28:38Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = {{{demospace|}}} main
| type = wikinotice
| image = [[File:Site-Icon.png|50px|link=Main Page]]
| text = <center>'''This page documents a [[GDW:P|Game Development Wiki policy]]'''.</center>
It documents a site-wide policy or policies that must be followed and are widely accepted among contributors. All wiki users should follow it, and changes made to it should be discussed on the [[{{TALKPAGENAME}}|talk page]].
| small = {{{small|left}}} / left / no
| plainlinks = no
}}
<br />{{#ifeq:{{{demo}}}|yes||<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{{category|[[Category:{{SITENAME}}|{{{Sortkey|{{PAGENAME}}}}}]]}}}}}</includeonly>}}<noinclude>{{Documentation}}[[Category:Header templates]]</noinclude>
4c5c3175c08c8f14d3cb5c6d1fc2726bd9771653
Game Development Wiki:Copyrights
4
123
327
2023-03-07T18:30:17Z
BlindCartographer
2
Created page with "{{Policy page}} Content on the Game Development Wiki is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted. Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system."
wikitext
text/x-wiki
{{Policy page}}
Content on the Game Development Wiki is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted.
Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system.
d0266efebbf04b3777803dc1b2d1bec9e6188aeb
328
327
2023-03-07T18:30:32Z
BlindCartographer
2
Protected "[[Game Development Wiki:Copyrights]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
Content on the Game Development Wiki is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted.
Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system.
d0266efebbf04b3777803dc1b2d1bec9e6188aeb
333
328
2023-03-07T18:37:35Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
Content on the [[Main Page|Game Development Wiki]] is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted.
Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system.
a75ccf2d4a2c286a459762a5c2f4fe61ffcca589
Game Development Wiki:General disclaimer
4
124
329
2023-03-07T18:34:50Z
BlindCartographer
2
Created page with "By using and accessing the [[Main Page|Game Development Wiki]], you agree to the wiki [[GDW:P|policies]] and [[GDW:EM|editing manual]]. You also agree to the Miraheze [[meta:Terms of Use|Terms of Use]] and [[meta:Privacy Policy|Privacy Policy]]."
wikitext
text/x-wiki
By using and accessing the [[Main Page|Game Development Wiki]], you agree to the wiki [[GDW:P|policies]] and [[GDW:EM|editing manual]]. You also agree to the Miraheze [[meta:Terms of Use|Terms of Use]] and [[meta:Privacy Policy|Privacy Policy]].
0e1b50edac895b3ff2dd0c5834b9b018b4c7fcc2
330
329
2023-03-07T18:35:01Z
BlindCartographer
2
Protected "[[Game Development Wiki:General disclaimer]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
By using and accessing the [[Main Page|Game Development Wiki]], you agree to the wiki [[GDW:P|policies]] and [[GDW:EM|editing manual]]. You also agree to the Miraheze [[meta:Terms of Use|Terms of Use]] and [[meta:Privacy Policy|Privacy Policy]].
0e1b50edac895b3ff2dd0c5834b9b018b4c7fcc2
Category:Bureaucrats
14
125
331
2023-03-07T18:36:29Z
BlindCartographer
2
Created page with "The current [[Project:Staff#Bureaucrat|bureaucrats]] of the [[Main Page|Game Development Wiki]]."
wikitext
text/x-wiki
The current [[Project:Staff#Bureaucrat|bureaucrats]] of the [[Main Page|Game Development Wiki]].
ef9bf1c1dabcbe5a77fe88bf389be956314d56e3
Category:Adminstrators
14
126
332
2023-03-07T18:37:03Z
BlindCartographer
2
Created page with "The current [[Project:Administrators|administrators]] of the [[Main Page|Game Development Wiki]]."
wikitext
text/x-wiki
The current [[Project:Administrators|administrators]] of the [[Main Page|Game Development Wiki]].
6de327c94d0e8ff1ed4b36d8c62a97763305f984
Template:Unblock
10
127
334
2023-03-07T18:43:25Z
BlindCartographer
2
Created page with "<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;"> [[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''': [[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}..."
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:UserProfileActivity/{{BASEPAGENAME}}|activity]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
----
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;">[[File:Appointment green.svg|left|48px|link=]] '''Your block appeal request has been accepted''':
----
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;">[[File:Appointment red.svg|left|48px|link=]] '''Your block appeal request has been denied''':
----
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
01833652fe38dc6711f9d3ef22ec21eefecf5283
336
334
2023-03-07T18:47:57Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
----
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;"><span style="float: left;">[[File:Appointment green.svg|left|48px|link=]]</span> '''Your block appeal request has been accepted''':
----
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;"><span style="float: left;">[[File:Appointment red.svg|left|48px|link=]]</span> '''Your block appeal request has been denied''':
----
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
2bb0e236172c81d19b45c5bcabdecea3a3cfa6b9
337
336
2023-03-07T18:50:47Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
----
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;"><span style="float: left; margin: auto;">[[File:Appointment green.svg|left|48px|link=]]</span> '''Your block appeal request has been accepted''':
----
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;"><span style="float: left; margin: auto;">[[File:Appointment red.svg|left|48px|link=]]</span> '''Your block appeal request has been denied''':
----
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
1d474eba516b3ba3d2ecf6e7f7194acc743fb7a2
338
337
2023-03-07T18:56:53Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr>
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;"><span style="float: left; margin: auto;">[[File:Appointment green.svg|left|48px|link=]]</span> '''Your block appeal request has been accepted''':
<hr>
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;"><span style="float: left; margin: auto;">[[File:Appointment red.svg|left|48px|link=]]</span> '''Your block appeal request has been denied''':
<hr>
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
174ed5f160bc7f0819ec242c546bae932d8c7083
339
338
2023-03-07T18:58:40Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr />
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;"><span style="float: left; margin: auto;">[[File:Appointment green.svg|left|48px|link=]]</span> '''Your block appeal request has been accepted''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;"><span style="float: left; margin: auto;">[[File:Appointment red.svg|left|48px|link=]]</span> '''Your block appeal request has been denied''':
<hr />
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
ffa4e0c6a30de7bd799b41c2f32414249aadaf20
347
339
2023-03-07T19:09:41Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr />
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;">[[File:Appointment green.svg|left|48px|link=]] '''Your block appeal request has been accepted''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;">[[File:Appointment red.svg|left|48px|link=]] '''Your block appeal request has been denied''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| hold = | no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #FFFAF0; background-color: #fae4e3;">[[File:Appointment yellow.svg|left|48px|link=]] '''Your block appeal request has been placed on hold''':
<hr />
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
cce5c270b3f68ff27e66e9be55fdd50da0b83faf
348
347
2023-03-07T19:12:12Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr />
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;">[[File:Appointment green.svg|left|48px|link=]] '''Your block appeal request has been accepted''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;">[[File:Appointment red.svg|left|48px|link=]] '''Your block appeal request has been denied''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| hold = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #FFFAF0; background-color: #fae4e3;">[[File:Appointment yellow.svg|left|48px|link=]] '''Your block appeal request has been placed on hold''':
<hr />
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
a69b0ba6f9ce4147b1d563956762426e35d081c2
350
348
2023-03-07T19:13:35Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr />
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;">[[File:Appointment green.svg|left|48px|link=]] '''Your block appeal request has been accepted''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;">[[File:Appointment red.svg|left|48px|link=]] '''Your block appeal request has been denied''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| hold = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #FFFAF0;">[[File:Appointment yellow.svg|left|48px|link=]] '''Your block appeal request has been placed on hold''':
<hr />
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
dd90594f13a513d8b394b9f0a91050ab7dc460ef
352
350
2023-03-07T19:14:51Z
BlindCartographer
2
Protected "[[Template:Unblock]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF; color:black;">
[[File:Appointment blue.svg|left|48px|link=]] '''This user has requested that <span class="plainlinks">[{{fullurl:Special:BlockList|action=search&ip={{BASEPAGENAMEE}}}} their block]</span> be reviewed''':
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] <span class="plainlinks" style="font-size:88%;">([{{fullurl:Special:Log|type=block&page=User:{{BASEPAGENAMEE}}}} block log] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]] • [[Special:AbuseLog/{{BASEPAGENAME}}|abuse log]] • [{{fullurl:Special:Log|type=newusers&user={{BASEPAGENAMEE}}}} creation log])</span>
<hr />
'''Request reason''': {{{1|}}}
<br>
<br>
'''Notes''':
*Please make sure you have not appealed for a block of the same reason before, because your appeal will be declined if so.
*You should look over the [[GDW:P|rules]] and [[Project:Policy/Blocking policy|block policy]] before appealing.
</div>
{{#switch: {{{ans|}}}
| yes = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #ecffeb;">[[File:Appointment green.svg|left|48px|link=]] '''Your block appeal request has been accepted''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| no = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #fae4e3;">[[File:Appointment red.svg|left|48px|link=]] '''Your block appeal request has been denied''':
<hr />
'''Administrator note''': {{{an|}}}</div>
| hold = <div style="padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #FFFAF0;">[[File:Appointment yellow.svg|left|48px|link=]] '''Your block appeal request has been placed on hold''':
<hr />
'''Administrator note''': {{{an|}}}</div>
}}
<noinclude>{{Documentation}}</noinclude>
dd90594f13a513d8b394b9f0a91050ab7dc460ef
Template:Unblock/doc
10
128
335
2023-03-07T18:44:27Z
BlindCartographer
2
Created page with "This template can be added by a blocked user (that is still able to edit their talk page) and ask for their block to be appealed. It can be done by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reasoning as to why you should be unblocked. Only the blocked user can appeal their block. An '''administrator''' can then respond by adding the <code>|ans=yes/no</code> and choosing yes or no based on whet..."
wikitext
text/x-wiki
This template can be added by a blocked user (that is still able to edit their talk page) and ask for their block to be appealed. It can be done by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reasoning as to why you should be unblocked. Only the blocked user can appeal their block.
An '''administrator''' can then respond by adding the <code>|ans=yes/no</code> and choosing yes or no based on whether or not the appeal was accepted or declined.
== Syntax ==
When a user puts <code><nowiki>{{Unblock|insert reason here ~~~~}}</nowiki></code>, it will output as:
{{Unblock|insert reason here (users signature)}}
=== Answers ===
==== Yes ====
If an admin wants to respond, they can add two extra parameters. If an administrator adds the <code>|ans=yes</code> param, along with a fourth param filled in with their response, it will output as the following (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=yes|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=yes|an=admins note (admins signature)}}
==== No ====
In a similar way, appeals can be declined by making the <code>|ans=</code> param say "no" instead of "yes". Putting once added, it will output as this (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=no|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=no|an=admins note (admins signature)}}
53634ab5038dc96f2af3a18c906d113f10019708
349
335
2023-03-07T19:12:28Z
BlindCartographer
2
wikitext
text/x-wiki
This template can be added by a blocked user (that is still able to edit their talk page) and ask for their block to be appealed. It can be done by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reasoning as to why you should be unblocked. Only the blocked user can appeal their block.
An '''administrator''' can then respond by adding the <code>|ans=yes/no</code> and choosing yes or no based on whether or not the appeal was accepted or declined.
== Syntax ==
When a user puts <code><nowiki>{{Unblock|insert reason here ~~~~}}</nowiki></code>, it will output as:
{{Unblock|insert reason here (users signature)}}
=== Answers ===
==== Yes ====
If an admin wants to respond, they can add two extra parameters. If an administrator adds the <code>|ans=yes</code> param, along with a fourth param filled in with their response, it will output as the following (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=yes|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=yes|an=admins note (admins signature)}}
==== No ====
In a similar way, appeals can be declined by making the <code>|ans=</code> param say "no" instead of "yes". Once once added, it will output as this (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=no|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=no|an=admins note (admins signature)}}
==== On hold ====
If an admins wants to place a block appeal on hold for whatever reason, they may do so by making the <code>|ans=</code> param say "hold". Once added, it will output as this (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=hold|an=(admins note) ~~~~}}</nowiki></code>)
ae8c3a436aaf9f5e40df5b08c61d6bfcee072410
351
349
2023-03-07T19:14:24Z
BlindCartographer
2
wikitext
text/x-wiki
This template can be added by a blocked user (that is still able to edit their talk page) and ask for their block to be appealed. It can be done by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reasoning as to why you should be unblocked. Only the blocked user can appeal their block.
An '''administrator''' can then respond by adding the <code>|ans=yes/no/hold</code> and choosing yes or no based on whether or not the appeal was accepted or declined.
== Syntax ==
When a user puts <code><nowiki>{{Unblock|insert reason here ~~~~}}</nowiki></code>, it will output as:
{{Unblock|insert reason here (users signature)}}
=== Answers ===
==== Yes ====
If an admin wants to respond, they can add two extra parameters. If an administrator adds the <code>|ans=yes</code> param, along with a fourth param filled in with their response, it will output as the following (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=yes|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=yes|an=admins note (admins signature)}}
==== No ====
In a similar way, appeals can be declined by making the <code>|ans=</code> param say "no" instead of "yes". Once once added, it will output as this (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=no|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=no|an=admins note (admins signature)}}
==== On hold ====
If an admins wants to place a block appeal on hold for whatever reason, they may do so by making the <code>|ans=</code> param say "hold". Once added, it will output as this (for reference, the following is <code><nowiki>{{Unblock|insert reason here ~~~~|ans=hold|an=(admins note) ~~~~}}</nowiki></code>)
{{Unblock|insert reason here (users signature)|ans=hold|an=admins note (admins signature)}}
0a093156f3b9cdcd7ee6cec41e8f1bcb05efea95
MediaWiki:Common.css
8
37
340
249
2023-03-07T19:01:13Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
display: block;
unicode-bidi: isolate;
margin-block-start: 0.5em;
margin-block-end: 0.5em;
margin-inline-start: auto;
margin-inline-end: auto;
overflow: hidden;
border-style: inset;
border-width: 1px;
}
f56a8796cf3f9b5541656f7dd9c009210722a5e3
341
340
2023-03-07T19:01:52Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
display: block;
unicode-bidi: isolate;
margin-block-start: 0.5em;
margin-block-end: 0.5em;
margin-inline-start: auto;
margin-inline-end: auto;
overflow: hidden;
}
ae71093c2cb1453ec0a8af63cb10adb07fbdfee6
342
341
2023-03-07T19:02:23Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
unicode-bidi: isolate;
margin-block-start: 0.5em;
margin-block-end: 0.5em;
margin-inline-start: auto;
margin-inline-end: auto;
overflow: hidden;
}
f7d9ef8d9a407e4e6c639edd23fb1f4e5ecd9124
343
342
2023-03-07T19:02:57Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
overflow: hidden;
}
9cafd7bc3363e5966eae7caba4b705144a34dad9
344
343
2023-03-07T19:04:27Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
}
8fb1141b402522789313093c34e1a5f5d9c58bb2
345
344
2023-03-07T19:04:55Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
dda06c329e0a6aa4192e552f0787f32b9f0bc4ac
346
345
2023-03-07T19:06:21Z
BlindCartographer
2
css
text/css
/* CSS placed here will be applied to all skins */
@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Roboto+Mono&display=swap');
/* Message Design */
.mw-warning-with-logexcerpt {
border: 1px solid #BB7070;
background-color: #FFDBDB;
}
/* Infobox Styling */
.portable-infobox {
border: 1px solid #a2a9b1;
border-radius: 0px;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
font-size: 88%;
line-height: 1.5em;
width: 22em;
}
.portable-infobox .pi-border-color {
border-color: #FFFFFF
}
.portable-infobox .pi-header {
background-color: #abdba7;
vertical-align: middle;
}
.portable-infobox .pi-title {
background-color: #abdba7;
vertical-align: middle;
font-family: Righteous;
}
/** Vertical Line Config **/
hr {
overflow: hidden;
}
9cafd7bc3363e5966eae7caba4b705144a34dad9
Game Development Wiki:Policy
4
44
353
233
2023-03-07T19:30:15Z
BlindCartographer
2
/* Sockpuppetry */
wikitext
text/x-wiki
{{Policy page}}
There are certain '''rules''' and '''policies''' that every user, both registered and non-registered, must follow. Noncompliance with the rules will result in the appropriate actions being taken by [[GDW:Staff|wiki staff]], which may be as minor as an edit reversion or as major as an indefinite ban. If a rule seems unclear, please ask a current member of the [[Project:Staff|wiki staff]] for clarification. Rules concerning edit/page quality can be found [[Project:Editing manual|here]].
== General Rules ==
===Rule Zero===
Nobody is above the rules. All users, whether staff or not, are subject to punishment if necessary. There should be absolutely no favoritism, and attempting to find loopholes in the rules will not let you avoid punishment.
===Vandalism===
Vandalism or any sort of disruptive edits is strictly prohibited. The deliberate act of removing or destroying content on the wiki as well as purposefully spreading false or nonsensical information will not be tolerated. This applies to all articles and images. Acts of vandalism are always done maliciously; making an unhelpful edit by mistake cannot be considered vandalism. Vandalistic edits will be reverted and result in a warning and a block following afterwards if it continues.
===Wiki Content===
The wiki is primarily meant for the documentation of game development and anything related to it. Incredibly short pages will be deleted after 24 hours if it does not eventually get over 1,200 bytes. Rule breaking content will be removed. The first few offense will result in a warning. Further offenses or multiple offenses done in a short period of time will be counted as vandalism, resulting in either a lengthy or indefinite block. Adding explicitly NSFW or NSFL content will result in an immediate block.
The wiki does not cover individual games.
===Copyright Violations===
Adding articles or files about websites that violate copyright or violating copyright in any way is unacceptable. Any and all forms of copyright violation will be removed. Any form of intentional copyright violations will result in an indefinite block.
===Page Creation===
You can create any page you want, as long as it is relevant to the wikis overarching topic. Do not create irrelevant or spam pages, as that will result in immediate action. Make sure all pages at least mildly follow the [[Project:Editing manual|Editing manual]]. Please make a page on your [[Special:MyPage/Sandbox|Sandbox]] page before making it an article. Rule breaking content will be removed. Varying amounts of warnings and blocks may be handed out depending on the situation.
===Sockpuppetry===
The general rule is one editor, one account. Do not use multiple accounts to mislead, deceive, vandalize or disrupt; to create the illusion of greater support for a position; to stir up controversy; or to circumvent a block, ban, or sanction. Do not ask your family or friends to create accounts to support you. Do not revive old unused accounts and use them as different users, or use another person's account. Normal alts are fine, but don't use them maliciously. Upon being found out, an indefinite block will be put in place for the sockpuppet account, and the main account will have its block lengthened greatly.
===Spamming Edits/Edit Farming===
Do not spam edits. This behavior is disruptive and clutters an article's history. This can range from writing the same thing over and over across an article to adding several unnecessary links to making several edits that consist of adding something then quickly undoing it. Creating pages over and over is also considered spam. Spamming in an article is generally seen as vandalism. Any form of spam is forbidden. Edits will be reverted. Offending users will be warned and may be blocked if they continue.
===Edit Wars===
An edit war is where two users undo each of their edits in one page due to a disagreement between each other. If you are in a situation where you are edit warring with someone, please message them on their message wall. Explain your reasoning as to why your edit should be published with research to back-up your reasoning. If the edit war continues after discussing, please contact an admin or content moderators. If you are the user with incorrect information, or your edits were not published, please do not harass or get frustrated with the people that were involved. Pages subject to edit warring will be temporarily locked, and users will be warned. Users continuing afterwards may be blocked.
===Behavior & Civility===
All contributors are expected to act civil and courteous towards other users. If there is a dispute, try and work it out peacefully with the other user, or just back away. Trolling is also not allowed, and will result in a punishment if it does not stop. Offending users will be warned. Users continuing after the warning(s) will be blocked.
===Spamming===
Do not spam. This behavior is annoying and can clutter a discussion. This can range from copypastas to needlessly long breaks to writing in a very distracting font. Making the same or very similar comments multiple times is also considered spam. Encouraging users to spam is also forbidden. Offending users will be warned. Users continuing after the warning will be blocked.
===Usernames===
Any username that is explicit, rude, inappropriate, derogatory, or in any way inappropriate will result in the account under the inappropriate username being permanently blocked. Usernames that advertise groups are also not allowed, nor are usernames that impersonate another user, a group, or well-known famous person. The user is allowed to make another account under a different and more appropriate name, however.
== Blocking ==
<small>A more in-depth blocking policy can be found [[Project:Policy/Blocking policy|here]]</small>
<br>
Blocks can be assigned to users by [[Project:Administrators|administrators]] when the situation calls for it. Certain blocks may mildly deviate from the general length for any given reason, albeit rarely. The third block given to any user for any reason will be '''indefinite'''.
=== Appeals ===
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
Only the blocked user can appeal their block, no third party may do so for another user.
== Other Policies ==
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
33622b1195ea1bfe867b30c00e10b83d9e45f8fa
Game Development Wiki:Policy/Blocking policy
4
129
354
2023-03-07T19:30:49Z
BlindCartographer
2
Created page with "{{Policy page}} [[File:Deletion icon.svg|40px|right|link=]] Sometimes, when a user ignores warnings and continues to disrupt the ebb-and-flow of the wiki, an [[Project:Administrators|administrator]] will have to block that user from editing and posting for a certain amount of time. Blocked users or IP addresses can still access and read the wiki, but they can't edit, post, or interact in any other way, unless the blocking administrator has allowed them to edit their talk..."
wikitext
text/x-wiki
{{Policy page}}
[[File:Deletion icon.svg|40px|right|link=]]
Sometimes, when a user ignores warnings and continues to disrupt the ebb-and-flow of the wiki, an [[Project:Administrators|administrator]] will have to block that user from editing and posting for a certain amount of time. Blocked users or IP addresses can still access and read the wiki, but they can't edit, post, or interact in any other way, unless the blocking administrator has allowed them to edit their talk page.
== Why would a user be blocked? ==
Reasons such as vandalism or spam are some of the most common reasons for blocking a user or IP address, but any [[GDW:P|policy]] violations could count. If you are blocked, do not attempt to make a [[wikipedia:Help:Sockpuppet|sockpuppet]] account to evade bans, as that will heavily lengthen the ban on your main account and get the sock '''indefinitely''' blocked.
=== What happens when a blocked user tries to edit? ===
When a blocked user tries to edit, they are disallowed and will see a pop-up at the top of their screen. The pop-up looks like this (with changed info.):
== Block Length ==
The length of a block varies from severity and reason, but no block should be shorter than 1 day. The third block for any account for any reason is indefinite, and may not be appealed. If a users IP address is also blocked with their account, there should very rarely be a block longer than 3 months for their IP unless there is a '''clear and current need for it'''.
== Block Appeals ==
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
#Keep all messages civil, kind, and courteous.
#Include all details featured in your blocked message pop-up.
#Do not lie.
#Do not drag out the appeal for more than 2 weeks at most.
It is suggested you don't use the latter method if you have the ability to edit your talk page. Only the blocked user can appeal their block, no third party can do so for them. Most users should still be able to edit their own talk page after a block unless it was for some
== See also ==
[[Category:{{SITENAME}}]]
084be4471baeb4ce7bee3cd932bef05ca20e73e2
355
354
2023-03-07T19:34:59Z
BlindCartographer
2
/* Block Appeals */
wikitext
text/x-wiki
{{Policy page}}
[[File:Deletion icon.svg|40px|right|link=]]
Sometimes, when a user ignores warnings and continues to disrupt the ebb-and-flow of the wiki, an [[Project:Administrators|administrator]] will have to block that user from editing and posting for a certain amount of time. Blocked users or IP addresses can still access and read the wiki, but they can't edit, post, or interact in any other way, unless the blocking administrator has allowed them to edit their talk page.
== Why would a user be blocked? ==
Reasons such as vandalism or spam are some of the most common reasons for blocking a user or IP address, but any [[GDW:P|policy]] violations could count. If you are blocked, do not attempt to make a [[wikipedia:Help:Sockpuppet|sockpuppet]] account to evade bans, as that will heavily lengthen the ban on your main account and get the sock '''indefinitely''' blocked.
=== What happens when a blocked user tries to edit? ===
When a blocked user tries to edit, they are disallowed and will see a pop-up at the top of their screen. The pop-up looks like this (with changed info.):
== Block Length ==
The length of a block varies from severity and reason, but no block should be shorter than 1 day. The third block for any account for any reason is indefinite, and may not be appealed. If a users IP address is also blocked with their account, there should very rarely be a block longer than 3 months for their IP unless there is a '''clear and current need for it'''.
== Block Appeals ==
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
#Keep all messages civil, kind, and courteous.
#Include all details featured in your blocked message pop-up.
#Do not lie.
#Do not drag out the appeal for more than 2 weeks at most.
It is suggested you don't use the latter method if you have the ability to edit your talk page. Only the blocked user can appeal their block, no third party can do so for them. Most users should still be able to edit their own talk page after a block unless it was for some urgent or extreme reason.
Do not email an administrator in an attempt to appeal your block.
== See also ==
[[Category:{{SITENAME}}]]
7af032c09665962cf94b09271fbf40b0d483afb7
357
355
2023-03-07T20:05:32Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
[[File:Stop hand nuvola.svg|50px|right|link=]]
Sometimes, when a user ignores warnings and continues to disrupt the ebb-and-flow of the wiki, an [[Project:Administrators|administrator]] will have to block that user from editing and posting for a certain amount of time. Blocked users or IP addresses can still access and read the wiki, but they can't edit, post, or interact in any other way, unless the blocking administrator has allowed them to edit their talk page.
== Why would a user be blocked? ==
Reasons such as vandalism or spam are some of the most common reasons for blocking a user or IP address, but any [[GDW:P|policy]] violations could count. If you are blocked, do not attempt to make a [[wikipedia:Help:Sockpuppet|sockpuppet]] account to evade bans, as that will heavily lengthen the ban on your main account and get the sock '''indefinitely''' blocked.
=== What happens when a blocked user tries to edit? ===
When a blocked user tries to edit, they are disallowed and will see a pop-up at the top of their screen. The pop-up looks like this (with changed info.):
{{MediaWiki:Blockedtext}}
== Block Length ==
The length of a block varies from severity and reason, but no block should be shorter than 1 day. The third block for any account for any reason is indefinite, and may not be appealed. If a users IP address is also blocked with their account, there should very rarely be a block longer than 3 months for their IP unless there is a '''clear and current need for it'''.
== Block Appeals ==
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
#Keep all messages civil, kind, and courteous.
#Include all details featured in your blocked message pop-up.
#Do not lie.
#Do not drag out the appeal for more than 2 weeks at most.
It is suggested you don't use the latter method if you have the ability to edit your talk page. Only the blocked user can appeal their block, no third party can do so for them. Most users should still be able to edit their own talk page after a block unless it was for some urgent or extreme reason.
Do ''not'' email an administrator in an attempt to appeal your block.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
a252b2f52868351356941bb2bce381c2577042e1
363
357
2023-03-07T20:38:08Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy/Blocking policy]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
[[File:Stop hand nuvola.svg|50px|right|link=]]
Sometimes, when a user ignores warnings and continues to disrupt the ebb-and-flow of the wiki, an [[Project:Administrators|administrator]] will have to block that user from editing and posting for a certain amount of time. Blocked users or IP addresses can still access and read the wiki, but they can't edit, post, or interact in any other way, unless the blocking administrator has allowed them to edit their talk page.
== Why would a user be blocked? ==
Reasons such as vandalism or spam are some of the most common reasons for blocking a user or IP address, but any [[GDW:P|policy]] violations could count. If you are blocked, do not attempt to make a [[wikipedia:Help:Sockpuppet|sockpuppet]] account to evade bans, as that will heavily lengthen the ban on your main account and get the sock '''indefinitely''' blocked.
=== What happens when a blocked user tries to edit? ===
When a blocked user tries to edit, they are disallowed and will see a pop-up at the top of their screen. The pop-up looks like this (with changed info.):
{{MediaWiki:Blockedtext}}
== Block Length ==
The length of a block varies from severity and reason, but no block should be shorter than 1 day. The third block for any account for any reason is indefinite, and may not be appealed. If a users IP address is also blocked with their account, there should very rarely be a block longer than 3 months for their IP unless there is a '''clear and current need for it'''.
== Block Appeals ==
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
#Keep all messages civil, kind, and courteous.
#Include all details featured in your blocked message pop-up.
#Do not lie.
#Do not drag out the appeal for more than 2 weeks at most.
It is suggested you don't use the latter method if you have the ability to edit your talk page. Only the blocked user can appeal their block, no third party can do so for them. Most users should still be able to edit their own talk page after a block unless it was for some urgent or extreme reason.
Do ''not'' email an administrator in an attempt to appeal your block.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
a252b2f52868351356941bb2bce381c2577042e1
MediaWiki:Blockedtext
8
130
356
2023-03-07T20:02:05Z
BlindCartographer
2
Created page with "<div id="mw-blocked-text" style="border: 1px solid #AAA; background: #FEE7E6; padding: 1.5em; width: 100%; box-sizing: border-box;"> <span style="font-size: 26px;"><center>[[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]] '''Your username or IP address has been [[Project:Policy/Blocking policy|blocked]].''' [[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]]</center></span> <center><span style="font-size: 18px;">This does not affec..."
wikitext
text/x-wiki
<div id="mw-blocked-text" style="border: 1px solid #AAA; background: #FEE7E6; padding: 1.5em; width: 100%; box-sizing: border-box;">
<span style="font-size: 26px;"><center>[[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]] '''Your username or IP address has been [[Project:Policy/Blocking policy|blocked]].''' [[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]]</center></span>
<center><span style="font-size: 18px;">This does not affect your ability to ''read'' wiki pages.</span></center>
Your username or IP address has been [[Project:Policy/Blocking policy|blocked]] by $1 for the following reason(s):
<div style="padding:10px; background:white; border:1px #666 solid;">
$2
</div>
The following information is also relevant:
* Start of block: $8
* Expiration of block: $6
* Intended blockee: $7
* Your current IP address is $3, and the block ID is #$5.
<big>Even when blocked, you will ''usually'' still be able to edit your [[Special:Mytalk|user talk page]] and email administrators and other editors.
For information on how to proceed, please read the '''[[Project:Policy/Blocking policy#Appeals|guide on block appeals]]'''.</big>
Please include all above details in any queries you make.
</div>
f6f79aac69acc06a24122dbbfc13f232971b08ce
373
356
2023-03-07T21:04:03Z
BlindCartographer
2
wikitext
text/x-wiki
<div id="mw-blocked-text" style="border: 1px solid #AAA; background: #FEE7E6; padding: 1.5em; width: 100%; box-sizing: border-box;">
<span style="font-size: 26px;"><center>[[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]] '''Your username or IP address has been [[Project:Policy/Blocking policy|blocked]].''' [[File:Stop hand nuvola.svg|80px|link=Project:Policy/Blocking policy]]</center></span>
<center><span style="font-size: 18px;">This does not affect your ability to ''read'' wiki pages.</span></center>
Your username or IP address has been [[Project:Policy/Blocking policy|blocked]] by $1 for the following reason(s):
<div style="padding:10px; background:white; border:1px #666 solid;">
$2
</div>
The following information is also relevant:
* Start of block: $8
* Expiration of block: $6
* Intended blockee: $7
* Your current IP address is $3, and the block ID is #$5.
<big>Even when blocked, you will ''usually'' still be able to edit your [[Special:Mytalk|user talk page]] and email administrators and other editors.
For information on how to proceed, please read the '''[[Project:Policy/Blocking policy#Block Appeals|guide on block appeals]]'''.</big>
Please include all above details in any queries you make.
</div>
18ba0b1254a624045f20037492d10893ed3ade3f
Game Development Wiki:Policy/Protection policy
4
131
358
2023-03-07T20:25:46Z
BlindCartographer
2
Created page with "{{Policy page}} [[File:Semi-protection-shackle.svg|50px|right|link=]] Every so often, when a page is the victim of many bad-faith edits, has very high traffic, or is important to the wiki, it will be '''protected''' so only specific type of user can edit it. This process is titled "page protection" or "locking a page". == Why lock a page? == A page will be protected if it is often on the receiving end of many vandal or general bad-faith edits, has higher viewer traffic..."
wikitext
text/x-wiki
{{Policy page}}
[[File:Semi-protection-shackle.svg|50px|right|link=]]
Every so often, when a page is the victim of many bad-faith edits, has very high traffic, or is important to the wiki, it will be '''protected''' so only specific type of user can edit it. This process is titled "page protection" or "locking a page".
== Why lock a page? ==
A page will be protected if it is often on the receiving end of many vandal or general bad-faith edits, has higher viewer traffic than most other pages, or is overall a major or important part of the community. Page protection can occur for many reasons, but those are three of the most common.
Pages can ''also'' be protected for any of the following reasons (but isn't limited to):
*Edit warring.
*A request from the owner (for company and studio articles).
*It has been chosen as a featured article.
*Any other reason that has been agreed upon by the wiki moderators.
=== Who can lock a page? ===
The only people who can lock, unlock, or edit a page that is fully-locked are [[Project:Administrators|administrators]] and [[Project:Moderation|moderators]].
== Protection types ==
=== Semi-protected ===
[[File:Semi-protection-shackle.svg|50px|right|link=]]
'''Semi-protection''' is when only [[Project:Staff#Autoconfirmed|autoconfirmed]] users are able to edit or move pages. This is often used in minor scenarios such as high-traffic pages or where vandalism has just started to pick up.
=== Fully protected ===
[[File:Full-protection-shackle.svg|50px|right|link=]]
'''Full protection''' means that only content moderators and administrators can edit or move the page. This is often done when pages are often and heavily vandalized, and on important pages.
=== Upload protection ===
[[File:Upload-protection-shackle.svg|50px|right|link=]]
'''Upload protection''' is for files on the wiki and defines who can upload a new version of any given file on the wiki. It can be semi or fully protected, and is normally used for important files on the wiki.
=== Creation protection ===
[[File:Create-protection-shackle.svg|50px|right|link=]]
'''Creation protection''' is for pages that are not yet created, and can be protected so that only autoconfirmed users or content moderators and administrators can create the page. This is often done for pages that shouldn't be created, or pages that are often recreated after deletion.
== How long should a page be protected? ==
Articles should only be protected for so long, and very rarely be indefinitely locked. Pages (not articles) in general can be locked for however long, and may very easily be indefinitely locked, but only for a good reason.
== See also ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
eca8e61ff8de9fbebef29c5f72ca2d6015bd3614
359
358
2023-03-07T20:26:10Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy/Protection policy]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
[[File:Semi-protection-shackle.svg|50px|right|link=]]
Every so often, when a page is the victim of many bad-faith edits, has very high traffic, or is important to the wiki, it will be '''protected''' so only specific type of user can edit it. This process is titled "page protection" or "locking a page".
== Why lock a page? ==
A page will be protected if it is often on the receiving end of many vandal or general bad-faith edits, has higher viewer traffic than most other pages, or is overall a major or important part of the community. Page protection can occur for many reasons, but those are three of the most common.
Pages can ''also'' be protected for any of the following reasons (but isn't limited to):
*Edit warring.
*A request from the owner (for company and studio articles).
*It has been chosen as a featured article.
*Any other reason that has been agreed upon by the wiki moderators.
=== Who can lock a page? ===
The only people who can lock, unlock, or edit a page that is fully-locked are [[Project:Administrators|administrators]] and [[Project:Moderation|moderators]].
== Protection types ==
=== Semi-protected ===
[[File:Semi-protection-shackle.svg|50px|right|link=]]
'''Semi-protection''' is when only [[Project:Staff#Autoconfirmed|autoconfirmed]] users are able to edit or move pages. This is often used in minor scenarios such as high-traffic pages or where vandalism has just started to pick up.
=== Fully protected ===
[[File:Full-protection-shackle.svg|50px|right|link=]]
'''Full protection''' means that only content moderators and administrators can edit or move the page. This is often done when pages are often and heavily vandalized, and on important pages.
=== Upload protection ===
[[File:Upload-protection-shackle.svg|50px|right|link=]]
'''Upload protection''' is for files on the wiki and defines who can upload a new version of any given file on the wiki. It can be semi or fully protected, and is normally used for important files on the wiki.
=== Creation protection ===
[[File:Create-protection-shackle.svg|50px|right|link=]]
'''Creation protection''' is for pages that are not yet created, and can be protected so that only autoconfirmed users or content moderators and administrators can create the page. This is often done for pages that shouldn't be created, or pages that are often recreated after deletion.
== How long should a page be protected? ==
Articles should only be protected for so long, and very rarely be indefinitely locked. Pages (not articles) in general can be locked for however long, and may very easily be indefinitely locked, but only for a good reason.
== See also ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
eca8e61ff8de9fbebef29c5f72ca2d6015bd3614
360
359
2023-03-07T20:34:35Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
[[File:Semi-protection-shackle.svg|50px|right|link=]]
Every so often, when a page is the victim of many bad-faith edits, has very high traffic, or is important to the wiki, it will be '''protected''' so only specific type of user can edit it. This process is titled "page protection" or "locking a page".
== Why lock a page? ==
A page will be protected if it is often on the receiving end of many vandal or general bad-faith edits, has higher viewer traffic than most other pages, or is overall a major or important part of the community. Page protection can occur for many reasons, but those are three of the most common.
Pages can ''also'' be protected for any of the following reasons (but isn't limited to):
*Edit warring.
*A request from the owner (for company and studio articles).
*It has been chosen as a featured article.
*Any other reason that has been agreed upon by the wiki moderators.
=== Who can lock a page? ===
The only people who can lock, unlock, or edit a page that is fully-locked are [[Project:Administrators|administrators]] and [[Project:Moderation|moderators]].
== Protection types ==
=== Semi-protected ===
[[File:Semi-protection-shackle.svg|50px|right|link=]]
'''Semi-protection''' is when only [[Project:Staff#Autoconfirmed|autoconfirmed]] users are able to edit or move pages. This is often used in minor scenarios such as high-traffic pages or where vandalism has just started to pick up.
=== Fully protected ===
[[File:Full-protection-shackle.svg|50px|right|link=]]
'''Full protection''' means that only content moderators and administrators can edit or move the page. This is often done when pages are often and heavily vandalized, and on important pages.
=== Upload protection ===
[[File:Upload-protection-shackle.svg|50px|right|link=]]
'''Upload protection''' is for files on the wiki and defines who can upload a new version of any given file on the wiki. It can be semi or fully protected, and is normally used for important files on the wiki.
=== Creation protection ===
[[File:Create-protection-shackle.svg|50px|right|link=]]
'''Creation protection''' is for pages that are not yet created, and can be protected so that only autoconfirmed users or content moderators and administrators can create the page. This is often done for pages that shouldn't be created, or pages that are often recreated after deletion.
== How long should a page be protected? ==
Articles should only be protected for so long, and very rarely be indefinitely locked. Pages (not articles) in general can be locked for however long, and may very easily be indefinitely locked, but only for a good reason.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
c325581d9c6c4015184bc810c39352b5e2576f8f
Game Development Wiki:Policy/Deletion policy
4
132
361
2023-03-07T20:37:27Z
BlindCartographer
2
Created page with "{{Policy page}} [[File:Ambox warning.png|50px|right|link=]] When a page is not needed, doesn't fit the goal of the wiki, or is was created in bad-faith, it may be '''deleted'''. If a page was deleted, it had a good reason to be deleted. == Why delete a page? == If a page is deleted, it may have had several reasons why it was deleted. Some reasons may be but are not limited to: *Vandalism and/or spam. *Unnecessarily bringing back a deleted page. *Off-topic or unfitting...."
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox warning.png|50px|right|link=]]
When a page is not needed, doesn't fit the goal of the wiki, or is was created in bad-faith, it may be '''deleted'''. If a page was deleted, it had a good reason to be deleted.
== Why delete a page? ==
If a page is deleted, it may have had several reasons why it was deleted. Some reasons may be but are not limited to:
*Vandalism and/or spam.
*Unnecessarily bringing back a deleted page.
*Off-topic or unfitting.
*Duplicate of another page.
*Heavily violates the [[GDW:EM|editing manual]].
*Violates any of the [[GDW:P|policies]].
Make sure that before deleting any page, you check what links there and the history of the page.
== Who can delete a page? ==
Only users who have [[Project:Moderation|moderator]] or [[Project:Administrators|administrator]] rights can delete or restore a page, but any user can mark a page for deletion with the {{Tlx|Delete}} template.
== Restoring a page ==
If an administrator or moderator believes there has been an error in the deletion of a page, they may choose to restore it.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
4ca00e6ef430410da570fa6bfe4434ff2a4ec7ad
362
361
2023-03-07T20:37:48Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy/Deletion policy]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox warning.png|50px|right|link=]]
When a page is not needed, doesn't fit the goal of the wiki, or is was created in bad-faith, it may be '''deleted'''. If a page was deleted, it had a good reason to be deleted.
== Why delete a page? ==
If a page is deleted, it may have had several reasons why it was deleted. Some reasons may be but are not limited to:
*Vandalism and/or spam.
*Unnecessarily bringing back a deleted page.
*Off-topic or unfitting.
*Duplicate of another page.
*Heavily violates the [[GDW:EM|editing manual]].
*Violates any of the [[GDW:P|policies]].
Make sure that before deleting any page, you check what links there and the history of the page.
== Who can delete a page? ==
Only users who have [[Project:Moderation|moderator]] or [[Project:Administrators|administrator]] rights can delete or restore a page, but any user can mark a page for deletion with the {{Tlx|Delete}} template.
== Restoring a page ==
If an administrator or moderator believes there has been an error in the deletion of a page, they may choose to restore it.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
4ca00e6ef430410da570fa6bfe4434ff2a4ec7ad
364
362
2023-03-07T20:39:27Z
BlindCartographer
2
/* Who can delete a page? */
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox warning.png|50px|right|link=]]
When a page is not needed, doesn't fit the goal of the wiki, or is was created in bad-faith, it may be '''deleted'''. If a page was deleted, it had a good reason to be deleted.
== Why delete a page? ==
If a page is deleted, it may have had several reasons why it was deleted. Some reasons may be but are not limited to:
*Vandalism and/or spam.
*Unnecessarily bringing back a deleted page.
*Off-topic or unfitting.
*Duplicate of another page.
*Heavily violates the [[GDW:EM|editing manual]].
*Violates any of the [[GDW:P|policies]].
Make sure that before deleting any page, you check what links there and the history of the page.
== Who can delete a page? ==
Only users who have [[Project:Moderation|moderator]] or [[Project:Administrators|administrator]] rights can delete or restore a page, but any user can mark a page for deletion with the {{Tlx|Delete}} or {{Tlx|Speedy delete}} template.
== Restoring a page ==
If an administrator or moderator believes there has been an error in the deletion of a page, they may choose to restore it.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
4fb1a2507b274682c450c5e4bd93d3f67fc58042
Template:Merge to
10
133
365
2023-03-07T20:52:05Z
BlindCartographer
2
Created page with "{{Mbox | name = Merge from | demospace={{{demospace|}}} | type = move | image = [[File:Merge-arrow.svg|50px|alt=|link=]] | text = It has been suggested that this page be merged into [[{{{1|an article}}}]]. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]]) }} <noinclude> [[Category:Templates]] </noinclude>"
wikitext
text/x-wiki
{{Mbox
| name = Merge from
| demospace={{{demospace|}}}
| type = move
| image = [[File:Merge-arrow.svg|50px|alt=|link=]]
| text = It has been suggested that this page be merged into [[{{{1|an article}}}]]. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
[[Category:Templates]]
</noinclude>
f758e7e5ae1b5728dd07b769b659f3117ff1da12
366
365
2023-03-07T20:52:32Z
BlindCartographer
2
Protected "[[Template:Merge to]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| name = Merge from
| demospace={{{demospace|}}}
| type = move
| image = [[File:Merge-arrow.svg|50px|alt=|link=]]
| text = It has been suggested that this page be merged into [[{{{1|an article}}}]]. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
[[Category:Templates]]
</noinclude>
f758e7e5ae1b5728dd07b769b659f3117ff1da12
367
366
2023-03-07T20:54:13Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| name = Merge to
| demospace={{{demospace|}}}
| type = move
| image = [[File:Merge-arrow.svg|50px|alt=|link=]]
| text = It has been suggested that this page be merged into [[{{{1|an article}}}]]. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
[[Category:Templates]]
</noinclude>
3a788f99d4ca2c13d7c0716d1e0846abe661c2cc
368
367
2023-03-07T20:54:33Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| name = Merge to
| demospace={{{demospace|}}}
| type = move
| image = [[File:Merge-arrow.svg|50px|alt=|link=]]
| text = It has been suggested that this page be merged into [[{{{1|an article}}}]]. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
a00990016e39fa5ae658ffb0cff083a07ba0df35
Template:Merge from
10
134
369
2023-03-07T20:55:49Z
BlindCartographer
2
Created page with "{{Mbox | name = Merge from | demospace={{{demospace|}}} | type = move | image = [[File:Mergefrom.svg|50px|alt=|link=]] | text = It has been proposed that [[{{{1|an article}}}]] be merged with this page. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]]) }} <noinclude> {{Documentation}} [[Category:Templates]] </noinclude>"
wikitext
text/x-wiki
{{Mbox
| name = Merge from
| demospace={{{demospace|}}}
| type = move
| image = [[File:Mergefrom.svg|50px|alt=|link=]]
| text = It has been proposed that [[{{{1|an article}}}]] be merged with this page. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
affb34f9ca8a05ec0aec574d9cefc7e645b3a878
370
369
2023-03-07T20:56:05Z
BlindCartographer
2
Protected "[[Template:Merge from]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| name = Merge from
| demospace={{{demospace|}}}
| type = move
| image = [[File:Mergefrom.svg|50px|alt=|link=]]
| text = It has been proposed that [[{{{1|an article}}}]] be merged with this page. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]])
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
affb34f9ca8a05ec0aec574d9cefc7e645b3a878
Game Development Wiki:Policy/Merge policy
4
135
371
2023-03-07T21:00:30Z
BlindCartographer
2
Created page with "{{Policy page}} [[File:Mergefrom.svg|right|link=]] [[File:Merge-arrow.svg|right|link=]] On any given wiki, sometimes pages can be very similar, and the community thinks that they should be joined together. When this happens, administrators can '''merge''' the pages and their history using [[Special:MergeHistory|a special tool]] or by manual work. == What is page merging? == Page merging is when an [[Project::Administrators|administrator]] chooses to join the page histor..."
wikitext
text/x-wiki
{{Policy page}}
[[File:Mergefrom.svg|right|link=]]
[[File:Merge-arrow.svg|right|link=]]
On any given wiki, sometimes pages can be very similar, and the community thinks that they should be joined together. When this happens, administrators can '''merge''' the pages and their history using [[Special:MergeHistory|a special tool]] or by manual work.
== What is page merging? ==
Page merging is when an [[Project::Administrators|administrator]] chooses to join the page histories and a select amount of content that resides on two pages into one page. This is done when the community agrees, not just at the administrators leisure (but they do have final say).
=== How do I mark a page for merging? ===
In order to propose a merge between two pages, place the {{Tlx|Merge from|secondary page name}} template on the main page, and replace "secondary page name" with the page you want to be merged into that one. Then put the {{Tlx|Merge to|main page name}} template on the secondary page, and replace "main page name" with the name of the page you want it merged into. Please discuss page mergers on its talk page and give users about 2 weeks to a month to come up with an opinion.
== Merge proposal guidelines ==
Before making a merge proposal, please keep some things in mind:
#Are the two pages really that similar? Do they cover the same topic? If they are virtually the same page, please add the {{Tlx|Delete}} template instead (unless they both have large page histories and content, then a merge can still be proposed).
#Would both of their histories and at least a bit of their content work well on the same page?
#The smaller page should be merged with the larger page for ease of use.
#Do not propose a merge if either page is a candidate for cleanup or deletion, wait until those are cleared up and solved.
If your proposal does not follow these guidelines or just seems generally absurd, it may be declined early by an administrator.
== Merge Reversal ==
In certain situations, a merger may need to be reversed by an administrator. This must be done manually, and can not be done using the tool mentioned earlier. A merge reversal does not necessarily blacklist another merger on those pages from taking place.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
[[Category:{{SITENAME}}]]
b746ece02b11d5ce732e371fca590aeb1c617c75
372
371
2023-03-07T21:01:01Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy/Merge policy]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
[[File:Mergefrom.svg|right|link=]]
[[File:Merge-arrow.svg|right|link=]]
On any given wiki, sometimes pages can be very similar, and the community thinks that they should be joined together. When this happens, administrators can '''merge''' the pages and their history using [[Special:MergeHistory|a special tool]] or by manual work.
== What is page merging? ==
Page merging is when an [[Project::Administrators|administrator]] chooses to join the page histories and a select amount of content that resides on two pages into one page. This is done when the community agrees, not just at the administrators leisure (but they do have final say).
=== How do I mark a page for merging? ===
In order to propose a merge between two pages, place the {{Tlx|Merge from|secondary page name}} template on the main page, and replace "secondary page name" with the page you want to be merged into that one. Then put the {{Tlx|Merge to|main page name}} template on the secondary page, and replace "main page name" with the name of the page you want it merged into. Please discuss page mergers on its talk page and give users about 2 weeks to a month to come up with an opinion.
== Merge proposal guidelines ==
Before making a merge proposal, please keep some things in mind:
#Are the two pages really that similar? Do they cover the same topic? If they are virtually the same page, please add the {{Tlx|Delete}} template instead (unless they both have large page histories and content, then a merge can still be proposed).
#Would both of their histories and at least a bit of their content work well on the same page?
#The smaller page should be merged with the larger page for ease of use.
#Do not propose a merge if either page is a candidate for cleanup or deletion, wait until those are cleared up and solved.
If your proposal does not follow these guidelines or just seems generally absurd, it may be declined early by an administrator.
== Merge Reversal ==
In certain situations, a merger may need to be reversed by an administrator. This must be done manually, and can not be done using the tool mentioned earlier. A merge reversal does not necessarily blacklist another merger on those pages from taking place.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
[[Category:{{SITENAME}}]]
b746ece02b11d5ce732e371fca590aeb1c617c75
Template:Tmbox
10
136
374
2023-03-07T21:59:52Z
BlindCartographer
2
Created page with "{{Mbox | demospace = talk | type = {{{type|}}} | image = {{{image|[[File:Information icon4.png|45px|link=]]}}} | text = {{{text|}}} | small = {{{small|left}}} / left / no }}"
wikitext
text/x-wiki
{{Mbox
| demospace = talk
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
15c040cbff71717f2fb253681ee6fd83574126b3
Template:Tmbox
10
136
375
374
2023-03-07T22:00:05Z
BlindCartographer
2
Protected "[[Template:Tmbox]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Mbox
| demospace = talk
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
15c040cbff71717f2fb253681ee6fd83574126b3
Template:Tutorial talk
10
101
376
262
2023-03-08T00:03:29Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tmbox
|type=
|image= [[File:Ambox important blue.svg|45px|link=]]
|text= <center>'''This is a tutorial talk page'''</center>
This talk page should be used for the discussion of '''[[Tutorial:{{BASEPAGENAME}}|{{BASEPAGENAME}}]]'''. If you have questions or are seeking further information about something that was not discussed enough in the main tutorial, please ask them here. Do not remove any questions on this page unless you plan on adding the answer and how to achieve it on the main article.
----
<small>Please check to see if any available archives have the answers you seek before posting here.</small>
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:Talk page management templates]]
</noinclude>
5813ca556110e1d4e00067b08638230739fe7f62
Template:Ambox
10
48
377
104
2023-03-08T00:16:22Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = main
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
3ff074a80afd09d8fffa8ed05758d0edbad6660a
Template:Stub
10
47
378
226
2023-03-08T00:16:34Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = notice
| image = [[File:Information icon4.png|45px|link=Main Page]]
| text = <center>'''This article is a stub'''.</center>
This article requires some more information, as it is too short. If you believe you have some good information to add to this article, please do so!
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
3ccb2c1863038654369483c8074fde54547f28b3
392
378
2023-03-08T01:27:07Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = notice
| image = [[File:Information icon4.png|45px|link=Main Page]]
| text = <center>'''This article is a stub'''.</center>
This article requires some more information, as it is too short. If you believe you have some good information to add to this article, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please do so]!
}}
<includeonly>[[Category:Stubs]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
2737d03513a29d109b338429e1781836dbd4143d
Template:Cleanup
10
93
379
239
2023-03-08T00:17:54Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox important.webp|45px|link=Category:Candidates for cleanup]]
| text = <center>'''This article is a candidate for cleanup.'''</center>
This article requires some cleaning up to meet the wiki's [[Project:Editing manual|quality standards]]. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!]
'''Reason:''' {{#if: {{{1|}}}|''{{{1}}}''|''No reason given''}}.
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>{{Documentation}}</noinclude>
9d84264a310a7b3b832129020505ef77fcbbc771
Template:Ombox
10
42
380
223
2023-03-08T00:20:52Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace =
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
<noinclude>[[Category:Templates]]</noinclude>
1cd3850804229945d9293e56d6c004b3d7901fbc
381
380
2023-03-08T00:22:13Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace = Other
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
<noinclude>[[Category:Templates]]</noinclude>
d3a9896c423978c8a030611ec2e731140d84a2af
Template:Speedy delete
10
92
382
237
2023-03-08T00:27:39Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for speedy deletion]]
| text = <center>'''This article is a candidate for speedy deletion.'''</center>
This page has been marked as a candidate for speedy deletion by a member of the community. That means it is in '''extreme''' violations of the rules. {{#if: {{{1|}}}| It is marked as such for the following reason(s):'''{{{1}}}.|'''}} <br />
If you want to discuss the potential deletion of this page (whether it be to contest the deletion or give extra reasoning not covered by the reasons given above), please visit the pages talk page, or improve the page and remove the '''<code><nowiki>{{delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
}}
<includeonly>[[Category:Candidates for speedy deletion]]</includeonly>
<noinclude>[[Category:Article management templates]]</noinclude>
94b55f298d8236639bd5c37e5be85e4199416362
Template:Delete
10
91
383
235
2023-03-08T00:29:07Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = delete
| image = [[File:Ambox warning.png|45px|link=Category:Candidates for deletion]]
| text = <center>'''This article is a candidate for deletion.'''</center>
This page has been marked as a candidate for deletion by a member of the community. {{#if: {{{1|}}}| for the following reason(s):'''{{{1}}}.|'''}}
If you want to discuss the potential deletion of this page or contest the potential deletion, please visit the pages talk page or improve the page and remove the '''<code><nowiki>{{Delete}}</nowiki></code>''' tag.
<small>(''Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deleting.'')</small>
}}
<includeonly>[[Category:Candidates for deletion]]</includeonly>
<noinclude>{{Documentation}}
[[Category:Article management templates]]</noinclude>
da74b0f3dbf69a5d33a81f84dc6ad85241d33bf9
Template:User sandbox
10
72
384
166
2023-03-08T00:34:03Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|text = <center>'''This is a sandbox page.'''</center>
This page is a personal user sandbox, which means it is used by the respective owner to test and practice editing and formatting. It is not an article, but may be used to practice article creation.
----
<small>(If you want to visit your own sandbox, click [[Special:MyPage/Sandbox|here]].)</small>
|image = [[File:Sandbox.png|45px|link=Category:User sandboxes]]
|imagelink = Category:User sandboxes
}}
<includeonly>[[Category:User sandboxes]]</includeonly>
<noinclude>[[Category:User management templates]]</noinclude>
1ec813982d5df14f26e9c5b55ba13c0c3a9f8560
MediaWiki:Abusefilter-intro
8
35
385
95
2023-03-08T00:36:22Z
BlindCartographer
2
wikitext
text/x-wiki
Welcome to the Abuse Filter management interface. The Abuse Filter is an automated software mechanism of applying automatic heuristics to all actions. This interface shows a list of defined filters, and allows them to be modified.
Using the Abuse Filter, authorized users can configure a wide range of tests, which may help identify and prevent potentially harmful edits and other activities before they are added to the wiki, and the automatic actions to be taken.
Important:
* Make sure you are familiar with the [[GDW:P|wiki rules and policies]].
* Keep an eye on the log.
* Check for any false positives.
* Use the test filters before creating it individually.
{{Ombox
|type= content
|image=[[File:Ambox important.webp|45px|link=]]
|text=<center>'''Please be careful when modifying an abuse filter.'''</center>
Even a single typo can potentially disrupt the editing of thousands of legitimate contributors. It is strongly recommended that you test your filters first before you enable any actions. If you are not sure about something, please ask for help.
----
<small>If you cause problems, you may have your abuse filter editor permission revoked.</small>
}}
ea3f1398fbeec4ae36923e21b3f360f7f6a07604
Template:Talk no request
10
137
386
2023-03-08T00:51:10Z
BlindCartographer
2
Created page with "{{Tmbox |type= |image= [[File:Red information icon with gradient background.svg|45px|link=]] |text= <center>'''Edit requests are not currently being accepted.'''</center> Edit requests for {{BASEPAGENAME}} are currently not being accepted, and all made during this time will be '''declined'''. {{#if: {{{1}}}: This will remain in effect until {{{1}}}. }} }} <noinclude> {{Documentation}} [[Category:Templates]] </noinclude>"
wikitext
text/x-wiki
{{Tmbox
|type=
|image= [[File:Red information icon with gradient background.svg|45px|link=]]
|text= <center>'''Edit requests are not currently being accepted.'''</center>
Edit requests for {{BASEPAGENAME}} are currently not being accepted, and all made during this time will be '''declined'''. {{#if: {{{1}}}:
This will remain in effect until {{{1}}}.
}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
8934de4b9cdcfbfc3839f138ecde32a50ae893fb
387
386
2023-03-08T01:03:32Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tmbox
|type=
|image= [[File:Red information icon with gradient background.svg|45px|link=]]
|text= <center>'''Edit requests are not currently being accepted.'''</center>
Edit requests for {{BASEPAGENAME}} are currently not being accepted, and all made during this time will be '''declined'''. {{#if: {{{1|}}}:
This will remain in effect until {{{1}}}.
}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
502177f788adb055d7816daee7b8e71d186f7a65
389
387
2023-03-08T01:05:07Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tmbox
|type=
|image= [[File:Red information icon with gradient background.svg|45px|link=]]
|text= <center>'''Edit requests are not currently being accepted.'''</center>
Edit requests for {{BASEPAGENAME}} are currently not being accepted, and all made during this time will be '''declined'''. {{#if: {{{1|}}}
|This will remain in effect until {{{1}}}.
}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
2dbc2f6d934a14039d1793dc109360dbc663db0c
Template:Talk no request/doc
10
138
388
2023-03-08T01:03:43Z
BlindCartographer
2
Created page with "The '''{{BASEPAGENAME}}''' template is meant to be used on talk pages that are not accepting edit requests for whatever reason. == Usage == The template can be added to a talk page by adding {{Tlx|Talk no request}}. If you want to add an end date, you can add {{Tlx|Talk no request|(end date)}} == Syntax == Adding {{Tlx|Talk no request}} results in the following: {{Talk no request|}} For adding an end date, you could add {{Tlx|Talk no request|April 24th, 2023}}, which..."
wikitext
text/x-wiki
The '''{{BASEPAGENAME}}''' template is meant to be used on talk pages that are not accepting edit requests for whatever reason.
== Usage ==
The template can be added to a talk page by adding {{Tlx|Talk no request}}. If you want to add an end date, you can add {{Tlx|Talk no request|(end date)}}
== Syntax ==
Adding {{Tlx|Talk no request}} results in the following:
{{Talk no request|}}
For adding an end date, you could add {{Tlx|Talk no request|April 24th, 2023}}, which will result in the following (end date should be changed for inclusion):
{{Talk no request|April 24, 2023}}
5d10d4296f17963d0b1fa69f1011e40c0e7862c4
Template:Account changed
10
139
390
2023-03-08T01:16:06Z
BlindCartographer
2
Created page with "{{Ombox |image=[[File:Nuvola apps kuser rename.png|45px|link=User:{{{name|DifferentName}}}]] |text='''This user has moved accounts.'''<br /> This user has moved to an account under a new user: [[User:{{{name|DifferentName}}}|{{{name|DifferentName}}}]]. Please do not attempt to contact this account anymore. }} <noinclude> {{Documentation}} [[Category:User management templates]] [[Category:Templates]] </noinclude>"
wikitext
text/x-wiki
{{Ombox
|image=[[File:Nuvola apps kuser rename.png|45px|link=User:{{{name|DifferentName}}}]]
|text='''This user has moved accounts.'''<br />
This user has moved to an account under a new user: [[User:{{{name|DifferentName}}}|{{{name|DifferentName}}}]]. Please do not attempt to contact this account anymore.
}}
<noinclude>
{{Documentation}}
[[Category:User management templates]]
[[Category:Templates]]
</noinclude>
6a9fd66814d6dfc0a9c3630e378d16ab8fecdd56
Template:Biased article
10
140
391
2023-03-08T01:26:31Z
BlindCartographer
2
Created page with "{{Ambox | type = content | image = [[File:Ambox scales.svg|45px|link=Category:Biased articles]] | text = <center>'''This article may be biased!'''</center> This article may contain wording or false information biased towards a specific party's point of view. [{{fullurl:{{FULLPAGENAME}}|action=edit}} please correct the wording of this article] to make it more neutral. }} <includeonly>[[Category:Biased articles]]</includeonly> <noinclude>{{Documentation}} Category:Art..."
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox scales.svg|45px|link=Category:Biased articles]]
| text = <center>'''This article may be biased!'''</center>
This article may contain wording or false information biased towards a specific party's point of view. [{{fullurl:{{FULLPAGENAME}}|action=edit}} please correct the wording of this article] to make it more neutral.
}}
<includeonly>[[Category:Biased articles]]</includeonly>
<noinclude>{{Documentation}}
[[Category:Article management templates]]</noinclude>
12c4e9b9a24e6c5ab8a8125d3132db5fa948881c
Template:Request done
10
141
393
2023-03-08T01:42:58Z
BlindCartographer
2
Created page with "[[File:Yes check.svg|18px|link=]] '''Done''', {{{1|your request has been completed.}}} {{{note|}}} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
[[File:Yes check.svg|18px|link=]] '''Done''', {{{1|your request has been completed.}}} {{{note|}}}
<noinclude>{{Documentation}}</noinclude>
7bb4da8aa52d34cff734e5b18b4fbc474d348f7d
Template:Request not done
10
142
394
2023-03-08T01:44:25Z
BlindCartographer
2
Created page with "[[File:X mark.svg|18px|link=]] '''Not done''', {{{1|your request has been declined.}}} {{{note|}}} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
[[File:X mark.svg|18px|link=]] '''Not done''', {{{1|your request has been declined.}}} {{{note|}}}
<noinclude>{{Documentation}}</noinclude>
4a3fef815645d3219c3fb14458b303679d0a97c1
Template:Request on hold
10
143
395
2023-03-08T01:47:42Z
BlindCartographer
2
Created page with "[[File:Appointment orange.svg|18px|link=]] '''On hold''', {{{1|your request has been put on hold.}}} {{{note|}}} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
[[File:Appointment orange.svg|18px|link=]] '''On hold''', {{{1|your request has been put on hold.}}} {{{note|}}}
<noinclude>{{Documentation}}</noinclude>
00c4b8992050d4581335af3cf1d6fbf6c639b9c3
402
395
2023-03-08T02:07:31Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Gnome-appointment-soon.svg|18px|link=]] '''On hold''', {{{1|your request has been put on hold.}}} {{{note|}}}
<noinclude>{{Documentation}}</noinclude>
643703e857a5a71b37669c7531eaf95351d06de7
Template:Support vote
10
144
396
2023-03-08T01:58:58Z
BlindCartographer
2
Created page with "[[File:Symbol support vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Support''' {{{note|I support this.}}} <noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
[[File:Symbol support vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Support''' {{{note|I support this.}}}
<noinclude>
{{Documentation}}
</noinclude>
5bc49d4ce710c8c8b14ff61c42ef0bd6694150a4
401
396
2023-03-08T02:03:49Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol support vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Support''' {{{note|I support this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
402ebc6bbd99330e1016d4b49f3dc66c275a35bc
409
401
2023-03-08T02:14:30Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol support vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Support''' {{{note|I support this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
dcb7e129431b6f8e68a6b5ea4e1ed4cbd145a2fb
Template:Neutral vote
10
145
397
2023-03-08T02:00:59Z
BlindCartographer
2
Created page with "[[File:Symbol neutral vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Neutral''' {{{note|I am neutral about this.}}} <noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
[[File:Symbol neutral vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Neutral''' {{{note|I am neutral about this.}}}
<noinclude>
{{Documentation}}
</noinclude>
71fdcee03b47beb4344e537aa6d0d044835a7493
400
397
2023-03-08T02:03:36Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol neutral vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Neutral''' {{{note|I am neutral about this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
946bf7ad281793df21546e01f948c1ab9ea733d8
406
400
2023-03-08T02:12:49Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol neutral vote.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Neutral''' {{{note|I am neutral about this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
67e3bef2f6335c7e7ffc96c2ece92548d9066185
Template:Oppose vote
10
146
398
2023-03-08T02:02:56Z
BlindCartographer
2
Created page with "[[File:Symbol declined.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Oppose''' {{{note|I oppose this.}}} <noinclude> {{Documentation}} [[Category:Vote templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Symbol declined.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Oppose''' {{{note|I oppose this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
cef6f793f9ef1b6b3d39b79d33359a6f6e16f2a9
407
398
2023-03-08T02:13:04Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol declined.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Oppose''' {{{note|I oppose this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
3ef1c91da09211ffc3bcbe7adfaff764f41adb9d
Category:Vote templates
14
147
399
2023-03-08T02:03:22Z
BlindCartographer
2
Created page with "Templates used for the purposes of wiki voting."
wikitext
text/x-wiki
Templates used for the purposes of wiki voting.
a0b865b6011f868bae8ac627c09a77df800a4b90
Template:Approved vote
10
148
403
2023-03-08T02:08:40Z
BlindCartographer
2
Created page with "[[File:Symbol confirmed.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Approved''' {{{note|I approved this, and it has been passed.}}} <noinclude> {{Documentation}} [[Category:Vote templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Symbol confirmed.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}Approved''' {{{note|I approved this, and it has been passed.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
f7509ed368ed75fbdb0ea106c384a170ac52c1d1
408
403
2023-03-08T02:14:16Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol confirmed.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Approved''' {{{note|I approved this, and it has been passed.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
01eb7748941039d810035de1c3f35600854acf40
Template:On hold vote
10
149
404
2023-03-08T02:11:21Z
BlindCartographer
2
Created page with "[[File:Symbol wait.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}On hold''' {{{note|I have put this on hold for the time being.}}} <noinclude> {{Documentation}} [[Category:Vote templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Symbol wait.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}} }}On hold''' {{{note|I have put this on hold for the time being.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
315598c7b78018a98514b6bf7bbe2d7645a76a00
405
404
2023-03-08T02:12:01Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Symbol wait.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} On hold''' {{{note|I have put this on hold for the time being.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
a7b0897235a3123a71088239739f95fb1941a6c7
Template:Denied vote
10
150
410
2023-03-08T02:17:02Z
BlindCartographer
2
Created page with "[[File:Symbol unrelated.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Denied''' {{{note|I have denied this.}}} <noinclude> {{Documentation}} [[Category:Vote templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Symbol unrelated.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Denied''' {{{note|I have denied this.}}}
<noinclude>
{{Documentation}}
[[Category:Vote templates]]
</noinclude>
460bcb123f6d5ec18fe7930ba0b9ed8295fe5bd8
Module:Message box/configuration
828
19
411
325
2023-03-08T02:23:57Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
},
wikinotice = {
class = 'ambox-wikinotice',
image = 'Site-Icon.png'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
2c97a1c6c1fa34854654a9111d8cac0b106dff1c
415
411
2023-03-08T02:31:11Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
},
wikinotice = {
class = 'ambox-wikinotice',
image = 'Site-Icon.png'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
0a00f08207e8cfd7faed5ea77fc2d6cbad1d57a0
Template:Extended cleanup
10
151
412
2023-03-08T02:27:48Z
BlindCartographer
2
Created page with "{{Ambox | type = content | image = [[File:Ambox outdated content.svg|45px|link=Category:Candidates for cleanup]] | text = <center>'''This article has been a candidate for cleanup for an extended period of time.'''</center> This article requires some cleaning up and has not met the the wiki's [[Project:Editing manual|quality standards]] for an extended period of time, and may be deleted if it remains unfixed. If you think you can help it fit the standards better, [{{f..."
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox outdated content.svg|45px|link=Category:Candidates for cleanup]]
| text = <center>'''This article has been a candidate for cleanup for an extended period of time.'''</center>
This article requires some cleaning up and has not met the the wiki's [[Project:Editing manual|quality standards]] for an extended period of time, and may be deleted if it remains unfixed. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!]
'''Reason:''' {{#if: {{{1|}}}|''{{{1}}}''|''No reason given''}}.
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>{{Documentation}}</noinclude>
49557064d4c3ee06c42eceebbb4ee854e8dcbd97
413
412
2023-03-08T02:27:59Z
BlindCartographer
2
Protected "[[Template:Extended cleanup]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox outdated content.svg|45px|link=Category:Candidates for cleanup]]
| text = <center>'''This article has been a candidate for cleanup for an extended period of time.'''</center>
This article requires some cleaning up and has not met the the wiki's [[Project:Editing manual|quality standards]] for an extended period of time, and may be deleted if it remains unfixed. If you think you can help it fit the standards better, [{{fullurl:{{FULLPAGENAME}}|action=edit}} please add to this article!]
'''Reason:''' {{#if: {{{1|}}}|''{{{1}}}''|''No reason given''}}.
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>{{Documentation}}</noinclude>
49557064d4c3ee06c42eceebbb4ee854e8dcbd97
Template:Extended cleanup/doc
10
152
414
2023-03-08T02:29:45Z
BlindCartographer
2
Created page with "This template is to be used on pages that have been a candidate for cleanup for more than 8+ months."
wikitext
text/x-wiki
This template is to be used on pages that have been a candidate for cleanup for more than 8+ months.
c1d58b9d210e8864c892a42efb84a1d34c298c1b
Template:Talk civil
10
153
416
2023-03-08T02:38:40Z
BlindCartographer
2
Created page with "{{Tmbox |type= content |image= [[File:Ambox PR orange.svg|45px|link=]] |text= <center>'''Please all discussions below civil.'''</center> Do not leave hateful, distasteful, or generally unkind messages to others or in response to other's messages. Any such messages will result in them being removed an a punishment thereforth for the user in question. }} }} <noinclude> {{Documentation}} [[Category:Templates]] </noinclude>"
wikitext
text/x-wiki
{{Tmbox
|type= content
|image= [[File:Ambox PR orange.svg|45px|link=]]
|text= <center>'''Please all discussions below civil.'''</center>
Do not leave hateful, distasteful, or generally unkind messages to others or in response to other's messages. Any such messages will result in them being removed an a punishment thereforth for the user in question.
}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
13d0dd469f416be0db31875e925e0166381fa651
417
416
2023-03-08T02:38:49Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tmbox
|type= content
|image= [[File:Ambox PR orange.svg|45px|link=]]
|text= <center>'''Please all discussions below civil.'''</center>
Do not leave hateful, distasteful, or generally unkind messages to others or in response to other's messages. Any such messages will result in them being removed an a punishment thereforth for the user in question.
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
6c77f1464c79bcb590f8e8d5fade93d0432fe3fa
419
417
2023-03-08T02:39:52Z
BlindCartographer
2
Protected "[[Template:Talk civil]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Tmbox
|type= content
|image= [[File:Ambox PR orange.svg|45px|link=]]
|text= <center>'''Please all discussions below civil.'''</center>
Do not leave hateful, distasteful, or generally unkind messages to others or in response to other's messages. Any such messages will result in them being removed an a punishment thereforth for the user in question.
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
</noinclude>
6c77f1464c79bcb590f8e8d5fade93d0432fe3fa
Category:Talk message boxes
14
154
418
2023-03-08T02:39:02Z
BlindCartographer
2
Created page with "Templates that are to be used on Talk pages."
wikitext
text/x-wiki
Templates that are to be used on Talk pages.
6be98a010e2a379454c7127514cfae3c08ddcfb4
Category:Article message templates
14
155
420
2023-03-08T02:42:48Z
BlindCartographer
2
Created page with "Templates that are to be used on Articles."
wikitext
text/x-wiki
Templates that are to be used on Articles.
df1454fc093c6b379765a85a4697cffd9fd2e2c6
GDW:ABT
0
156
421
2023-03-08T02:50:45Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:About]]
wikitext
text/x-wiki
#REDIRECT [[Game Development Wiki:About]]
35fe3db9d6e5a5154fbf69e3a586470d7a62aba6
Game Development Wiki:Editing manual
4
157
422
2023-03-08T02:52:27Z
BlindCartographer
2
Created page with "{{Policy page}} Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor. [[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor.
[[Category:{{SITENAME}}]]
f3fe8058c4e3f1c5ff6053dd22a31827783369d7
423
422
2023-03-08T02:52:39Z
BlindCartographer
2
Protected "[[Game Development Wiki:Editing manual]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor.
[[Category:{{SITENAME}}]]
f3fe8058c4e3f1c5ff6053dd22a31827783369d7
424
423
2023-03-08T03:08:41Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor. This page documents said customs and is a how-to guide on making good and safe edits on the wiki. This guide focuses on edits made in '''source editor''' as it is much neater, and as such all if not most edits should be made in source editor. This guide also goes hand in hand with the [[GDW:P|wiki rules]].
== Page Creation ==
Before creating a page, please make it on your [[Special:MyPage/Sandbox|sandbox]] page beforehand to make any further edits before fully releasing it.
=== Page Titles ===
Titles for pages should only have the first word capitalized (except for certain instances), excluding the namespace of the page.
The first instance of the page title on any given page should be in '''bold'''.
== General Guidelines ==
#'''This is a primarily English-speaking wiki'''. All pages and edits must be written in American English. Writing words in the style of British English out of habit will not be punished, but it will be reverted. This is to ensure that the writing on articles remain consistent. Pages should never be written or changed to be translated in another language. This will be reverted. Users of other languages are encouraged to use translating tools such as a translation software to read the pages.
#*Examples: <u>favorite</u> over favourite, <u>gray</u> over grey, <u>paralyze</u> over paralyse, <u>defense</u> over defence.
#'''Remain in 3rd person'''. Do not use personal pronouns like "I" or "me" or any words that give attention to the editors. Do not use "you" or "we" when referring to readers either.
#'''Slang words should rarely be used'''. In almost all situations, formal language is expected to be used when writing or describing things as the wiki aims to be informative. Do not use slang words unless it is in a direct quote.
#'''Keep it simple'''. Strive to make the wiki understandable for everyone without having to refer to a dictionary every other sentence. Use simple descriptions, understandable vocabulary and an easy-to-follow structuring that smoothly leads one sentence to the next. This does not mean editors cannot be descriptive or use synonyms to avoid repeating the same word over and over, but remember that word choice matters. Simplicity goes a long way to make reading through an article more enjoyable but variety helps make it interesting too.
#'''Keep a neutral point of view'''. All articles should remain as neutral as possible. Do not word anything in a page in a manner that could possibly inject personal biases or viewpoints to the subject. Remain objective as much as possible to present an article's subject fairly and reliably without editorial bias.
== Infoboxes ==
Infoboxes are the rectangular boxes on the right of articles that contain various information. Different infoboxes exist for different things, such as {{Tlx|Infobox programming language}} and {{Tlx|Infobox game engine}}. Almost all main articles should have infoboxes, but not every single one needs them, albeit in rare circumstances.
Most of the fields in an infobox should be filled, but if you do not have the information or the info is unnecessary, said info may not need to be added.
== Templates ==
Templates are featured on pages when they are fit. They come in many different shapes and forms, and sometimes have fields that can be filled in. For example; {{Tlx|delete|reason for deletion}}. A few of the most often used templates and their meaning will be presented below:
*{{Tlx|Stub}} - For short pages lacking in information (a byte count of <span class="mw-plusminus-pos">1,200</span>-<span class="mw-plusminus-pos">2,400</span>)
*{{Tlx|Delete}} - For pages that break the rules, have under 1,200 bytes, heavily violate the editing manual, etc. Pages with under 1,000 bytes have 24 hours to gain enough bytes before deletion.
*{{Tlx|Cleanup}} - For pages that violate the editing tutorial in a non-extreme way. If a page stays a candidate for cleanup for too long, it may become a candidate for deletion.
== Categories ==
Do not add unapproved categories or random and irrelevant categories to pages. A full list of categories can be found at [[Special:Categories]]. New categories can be proposed [[Project:Requests for categories|here]].
== Talk Pages ==
Every user should always sign their messages by putting four tildes (<nowiki>~~~~</nowiki>) at the end of the message. You should reply to message by either leaving a response on the messengers talk page, or by replying on your own wall.
== Use of Wikipedia ==
We do not allow the direct copy and pasting or plagiarism of wikipedia articles or articles from other wikis. Using information provided in said articles is acceptable, but plagiarism is not.
== Other editing manuals ==
* [[Project:Editing manual/Tutorial manual|Tutorial article manual]]
[[Category:{{SITENAME}}]]
f5cf5e8c9b9e8a290fa05d062a9b19a8558624da
Template:Top icon
10
158
425
2023-03-08T03:19:39Z
BlindCartographer
2
Created page with "<includeonly><nowiki /><!-- This nowiki tag helps prevent whitespace at the top of articles. -->{{#tag:indicator|[[File:{{{image|{{{imagename|{{{1|}}}}}}}}}|{{#if:{{{width|}}}|{{{width}}}|20}}x{{#if:{{{height|}}}|{{{height}}}|20}}px |{{#ifeq:{{{link|+}}}|{{{link|-}}}|link={{{link}}}|{{#ifeq:{{{wikilink|+}}}|{{{wikilink|-}}}|link={{{wikilink}}}|{{#ifeq:{{{2|+}}}|{{{2|-}}}|link={{{2}}}|}}}}}} |{{#if:{{{alt|}}}|alt={{{alt}}}}} |{{{text|{{{description|{{{3|}}}}}}}}}]] |na..."
wikitext
text/x-wiki
<includeonly><nowiki /><!-- This nowiki tag helps prevent whitespace at the top of articles. -->{{#tag:indicator|[[File:{{{image|{{{imagename|{{{1|}}}}}}}}}|{{#if:{{{width|}}}|{{{width}}}|20}}x{{#if:{{{height|}}}|{{{height}}}|20}}px
|{{#ifeq:{{{link|+}}}|{{{link|-}}}|link={{{link}}}|{{#ifeq:{{{wikilink|+}}}|{{{wikilink|-}}}|link={{{wikilink}}}|{{#ifeq:{{{2|+}}}|{{{2|-}}}|link={{{2}}}|}}}}}}
|{{#if:{{{alt|}}}|alt={{{alt}}}}}
|{{{text|{{{description|{{{3|}}}}}}}}}]]
|name = {{#if:{{{sortkey|}}}|{{{sortkey}}}-}}{{#if:{{{name|}}}|{{{name}}}|{{#if:{{{id|}}}|{{{id}}}|{{{image|{{{imagename|{{{1|}}}}}}}}}}}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
ee2d4a59ce18efe20730d279c7ea597b9e9602bd
426
425
2023-03-08T03:19:52Z
BlindCartographer
2
Protected "[[Template:Top icon]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly><nowiki /><!-- This nowiki tag helps prevent whitespace at the top of articles. -->{{#tag:indicator|[[File:{{{image|{{{imagename|{{{1|}}}}}}}}}|{{#if:{{{width|}}}|{{{width}}}|20}}x{{#if:{{{height|}}}|{{{height}}}|20}}px
|{{#ifeq:{{{link|+}}}|{{{link|-}}}|link={{{link}}}|{{#ifeq:{{{wikilink|+}}}|{{{wikilink|-}}}|link={{{wikilink}}}|{{#ifeq:{{{2|+}}}|{{{2|-}}}|link={{{2}}}|}}}}}}
|{{#if:{{{alt|}}}|alt={{{alt}}}}}
|{{{text|{{{description|{{{3|}}}}}}}}}]]
|name = {{#if:{{{sortkey|}}}|{{{sortkey}}}-}}{{#if:{{{name|}}}|{{{name}}}|{{#if:{{{id|}}}|{{{id}}}|{{{image|{{{imagename|{{{1|}}}}}}}}}}}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
ee2d4a59ce18efe20730d279c7ea597b9e9602bd
Template:Featured article
10
159
427
2023-03-08T03:20:23Z
BlindCartographer
2
Created page with "{{Top icon | imagename = cscr-featured.svg | wikilink = Project:Featured articles | alt = Featured article | description = This is a featured article. Click here for more information. | id = featured-star | maincat = [[Category:Featured articles]] }}"
wikitext
text/x-wiki
{{Top icon
| imagename = cscr-featured.svg
| wikilink = Project:Featured articles
| alt = Featured article
| description = This is a featured article. Click here for more information.
| id = featured-star
| maincat = [[Category:Featured articles]]
}}
100aad1d411cfa0978d1057b16c2294931720170
428
427
2023-03-08T03:20:39Z
BlindCartographer
2
Protected "[[Template:Featured article]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Top icon
| imagename = cscr-featured.svg
| wikilink = Project:Featured articles
| alt = Featured article
| description = This is a featured article. Click here for more information.
| id = featured-star
| maincat = [[Category:Featured articles]]
}}
100aad1d411cfa0978d1057b16c2294931720170
GDW:EM
0
160
429
2023-03-08T17:58:21Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Editing manual]]
wikitext
text/x-wiki
#REDIRECT [[Project:Editing manual]]
b4dabb705478b1d5e0a36920d2366d4e4467ec0a
430
429
2023-03-08T17:58:41Z
BlindCartographer
2
Protected "[[GDW:EM]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Editing manual]]
b4dabb705478b1d5e0a36920d2366d4e4467ec0a
Template:Reflist
10
161
431
2023-03-08T18:04:08Z
BlindCartographer
2
Created page with "<div class="references-small" {{#if: {{{colwidth|}}}| style="-moz-column-width:{{{colwidth}}}; -webkit-column-width:{{{colwidth}}}; column-width:{{{colwidth}}};" | {{#if: {{{1|}}}| style="-moz-column-count:{{{1}}}; -webkit-column-count:{{{1}}}; column-count:{{{1}}} }};" |}}> <references /></div> <noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>"
wikitext
text/x-wiki
<div class="references-small" {{#if: {{{colwidth|}}}| style="-moz-column-width:{{{colwidth}}}; -webkit-column-width:{{{colwidth}}}; column-width:{{{colwidth}}};" | {{#if: {{{1|}}}| style="-moz-column-count:{{{1}}}; -webkit-column-count:{{{1}}}; column-count:{{{1}}} }};" |}}>
<references /></div>
<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
a4bdfb981a0fd45f84b743cd79aab5d03dcb9d74
432
431
2023-03-08T18:04:22Z
BlindCartographer
2
Protected "[[Template:Reflist]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div class="references-small" {{#if: {{{colwidth|}}}| style="-moz-column-width:{{{colwidth}}}; -webkit-column-width:{{{colwidth}}}; column-width:{{{colwidth}}};" | {{#if: {{{1|}}}| style="-moz-column-count:{{{1}}}; -webkit-column-count:{{{1}}}; column-count:{{{1}}} }};" |}}>
<references /></div>
<noinclude>[[Category:Templates|{{PAGENAME}}]]</noinclude>
a4bdfb981a0fd45f84b743cd79aab5d03dcb9d74
Gdscript
0
97
433
250
2023-03-08T18:17:30Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox programming language
| title1= Gdscript
| image1= [[File:gdscript.png]]
| caption1= An example of Gdscript
| filename_extension= .gd
| format= [[Object orientated programming]]
| developer(s)=[[Godot]]
| initial_release=January 14th, 2014
| latest_release= March 1st, 2023
}}
{{Stub}}
'''Gdscript''' is an [[Object orientated programming|object orientated programming]] language created for the [[Godot]] [[Game engine|game engine]].<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref>
== References ==
{{Reflist}}
[[Category:Godot]]
[[Category:Object orientated programming languages]]
451f797f8ce0d8b0725524565627c126fbef63b4
Template:Ombox
10
42
434
381
2023-03-08T22:07:41Z
BlindCartographer
2
wikitext
text/x-wiki
{{Mbox
| demospace =
| type = {{{type|}}}
| image = {{{image|[[File:Information icon4.png|45px|link=]]}}}
| text = {{{text|}}}
| small = {{{small|left}}} / left / no
}}
<noinclude>[[Category:Templates]]</noinclude>
501bed8adaacb66cbd6afcc8dca35053d346747a
Module:Message box/configuration
828
19
435
415
2023-03-08T22:14:09Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
},
wikinotice = {
class = 'ambox-wikinotice',
image = 'Site-Icon.png'
},
void = {
class = 'ambox-void',
image = 'Ambox padlock red.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
d58dc7785996410f19c0a91c462e34a389be4e3b
Template:Mbox/styles.css
10
79
436
323
2023-03-08T22:14:53Z
BlindCartographer
2
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
table.ambox-wikinotice {
/* @noflip */
border-left: 10px solid #008000; /* Green */
}
table.ambox-void {
/* @noflip */
border-left: 10px solid #000000; /* Black */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
ee87de1130807db45033fe3ff3410fc704aa06e8
Module:Message box/ambox.css
828
82
437
324
2023-03-08T22:16:47Z
BlindCartographer
2
sanitized-css
text/css
/**
* {{ambox}} (article message box) styles
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
table.ambox {
/* 10% = Will not overlap with other elements */
margin: 0 10%;
border: 1px solid #a2a9b1;
/* Default "notice" blue */
border-left: 10px solid #36c;
background-color: #fbfbfb;
box-sizing: border-box;
}
/* Single border between stacked boxes. */
table.ambox + table.ambox,
table.ambox + link + table.ambox,
table.ambox + style + table.ambox {
margin-top: -1px;
}
/* An empty narrow cell */
.ambox td.mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
/* The message body cell(s) */
.ambox th.mbox-text,
.ambox td.mbox-text {
border: none;
/* 0.5em left/right */
padding: 0.25em 0.5em;
/* Make all mboxes the same width regardless of text length */
width: 100%;
}
/* The left image cell */
.ambox td.mbox-image {
/* 0.5em left, 0px right */
/* @noflip */
padding: 2px 0 2px 0.5em;
}
/* The right image cell */
.ambox td.mbox-imageright {
/* 0px left, 0.5em right */
/* @noflip */
padding: 2px 0.5em 2px 0;
}
table.ambox-notice {
/* Blue */
border-left-color: #36c;
}
table.ambox-speedy {
/* Pink */
background-color: #fee7e6;
}
table.ambox-delete,
table.ambox-speedy {
/* Red */
border-left-color: #b32424;
}
table.ambox-content {
/* Orange */
border-left-color: #f28500;
}
table.ambox-style {
/* Yellow */
border-left-color: #fc3;
}
table.ambox-move {
/* Purple */
border-left-color: #9932cc;
}
table.ambox-protection {
/* Gray-gold */
border-left-color: #a2a9b1;
}
table.ambox-wikinotice {
/* Green */
border-left-color: #008000;
}
table.ambox-wikinotice {
/* Black */
border-left-color: #000000;
}
/**
* {{ambox|small=1}} styles
*
* These ".mbox-small" classes must be placed after all other
* ".ambox" classes. "html body.mediawiki .ambox"
* is so they override both "table.ambox + table.ambox"
* and "table.ambox + link + table.ambox" above.
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
/* For the "small=yes" option. */
html body.mediawiki .ambox.mbox-small {
clear: right;
float: right;
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
/* For the "small=left" option. */
html body.mediawiki .ambox.mbox-small-left {
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
295d630d1e708b55536fcbe8fd4d2a4da4ef4c1c
438
437
2023-03-08T22:17:24Z
BlindCartographer
2
sanitized-css
text/css
/**
* {{ambox}} (article message box) styles
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
table.ambox {
/* 10% = Will not overlap with other elements */
margin: 0 10%;
border: 1px solid #a2a9b1;
/* Default "notice" blue */
border-left: 10px solid #36c;
background-color: #fbfbfb;
box-sizing: border-box;
}
/* Single border between stacked boxes. */
table.ambox + table.ambox,
table.ambox + link + table.ambox,
table.ambox + style + table.ambox {
margin-top: -1px;
}
/* An empty narrow cell */
.ambox td.mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
/* The message body cell(s) */
.ambox th.mbox-text,
.ambox td.mbox-text {
border: none;
/* 0.5em left/right */
padding: 0.25em 0.5em;
/* Make all mboxes the same width regardless of text length */
width: 100%;
}
/* The left image cell */
.ambox td.mbox-image {
/* 0.5em left, 0px right */
/* @noflip */
padding: 2px 0 2px 0.5em;
}
/* The right image cell */
.ambox td.mbox-imageright {
/* 0px left, 0.5em right */
/* @noflip */
padding: 2px 0.5em 2px 0;
}
table.ambox-notice {
/* Blue */
border-left-color: #36c;
}
table.ambox-speedy {
/* Pink */
background-color: #fee7e6;
}
table.ambox-delete,
table.ambox-speedy {
/* Red */
border-left-color: #b32424;
}
table.ambox-content {
/* Orange */
border-left-color: #f28500;
}
table.ambox-style {
/* Yellow */
border-left-color: #fc3;
}
table.ambox-move {
/* Purple */
border-left-color: #9932cc;
}
table.ambox-protection {
/* Gray-gold */
border-left-color: #a2a9b1;
}
table.ambox-wikinotice {
/* Green */
border-left-color: #008000;
}
table.ambox-void {
/* Black */
border-left-color: #000000;
}
/**
* {{ambox|small=1}} styles
*
* These ".mbox-small" classes must be placed after all other
* ".ambox" classes. "html body.mediawiki .ambox"
* is so they override both "table.ambox + table.ambox"
* and "table.ambox + link + table.ambox" above.
*
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css
* @revision 2021-07-15
*/
/* For the "small=yes" option. */
html body.mediawiki .ambox.mbox-small {
clear: right;
float: right;
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
/* For the "small=left" option. */
html body.mediawiki .ambox.mbox-small-left {
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
87fb7931c03a6cf7c6676f793ba1337dd64b2665
Template:ProtectSite
10
162
439
2023-03-08T22:31:17Z
BlindCartographer
2
Created page with "{{Ambox | type = void | image = [[File:Stop x ambox with clock.svg|45px|link=]] | text = <center>'''The [[Main Page|{{SITENAME}}]] is currently on lockdown.</center> The [[GDW:ABT|{{SITENAME}}]] is currently on temporary, site-wide lockdown due to '''{{{reason|a vandalism attack}}}'''. Only {{{user rights|administrators and moderators}}} will be able to edit, upload files, or move pages. Any user will still be able to ''read'' wiki articles, but not interact with them..."
wikitext
text/x-wiki
{{Ambox
| type = void
| image = [[File:Stop x ambox with clock.svg|45px|link=]]
| text = <center>'''The [[Main Page|{{SITENAME}}]] is currently on lockdown.</center>
The [[GDW:ABT|{{SITENAME}}]] is currently on temporary, site-wide lockdown due to '''{{{reason|a vandalism attack}}}'''. Only {{{user rights|administrators and moderators}}} will be able to edit, upload files, or move pages. Any user will still be able to ''read'' wiki articles, but not interact with them. This is a temporary measure and the wiki will be unlocked on {{{unlock|MM-DD-YY}}}.
Thank you for your patience, and we hope to see you editing when the wiki is unlocked!
}}
<noinclude>
{{Documentation}}
</noinclude>
1efaa50bae2006466e2b87858ded5ed44f4d525f
440
439
2023-03-08T22:31:31Z
BlindCartographer
2
Protected "[[Template:ProtectSite]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Ambox
| type = void
| image = [[File:Stop x ambox with clock.svg|45px|link=]]
| text = <center>'''The [[Main Page|{{SITENAME}}]] is currently on lockdown.</center>
The [[GDW:ABT|{{SITENAME}}]] is currently on temporary, site-wide lockdown due to '''{{{reason|a vandalism attack}}}'''. Only {{{user rights|administrators and moderators}}} will be able to edit, upload files, or move pages. Any user will still be able to ''read'' wiki articles, but not interact with them. This is a temporary measure and the wiki will be unlocked on {{{unlock|MM-DD-YY}}}.
Thank you for your patience, and we hope to see you editing when the wiki is unlocked!
}}
<noinclude>
{{Documentation}}
</noinclude>
1efaa50bae2006466e2b87858ded5ed44f4d525f
MediaWiki:Sitenotice
8
163
441
2023-03-08T22:33:53Z
BlindCartographer
2
testing the [[Template:ProtectSite|ProtectSite]] template
wikitext
text/x-wiki
{{ProtectSite
|reason=raiding
|unlock= March 9th, 2023
}}
c9dd596cacd31c457fdfa6d5455a35399b803708
442
441
2023-03-08T22:34:42Z
BlindCartographer
2
Replaced content with "-"
wikitext
text/x-wiki
-
3bc15c8aae3e4124dd409035f32ea2fd6835efc9
Main Page
0
1
443
83
2023-03-08T22:38:53Z
BlindCartographer
2
wikitext
text/x-wiki
__NOTOC__
<mainpage-leftcolumn-start />
{{MP-Header}}
{{MP-Main}}
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
{{MP-Help}}
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
2db5015f8586449a0c1f1c9c81fec630ef97675d
Template:MP-Help
10
39
444
79
2023-03-08T22:44:25Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|border=#180F67
|background=#F7F6FF
|header=<big><span style="font-family:Righteous;>'''Wiki Help'''</span></big>
|text='''Not sure where to start?'''
<br>
If you are new to wikis, check out the '''[[m:Help:Contents|MediaWiki help pages]]'''. Please assist by contributing to or creating any articles whatsoever relating to websites. All positive contributions great or small will be fully appreciated.
If you need any help, please ask a member of our admin team, [[Project:Administrators|located here.]]
'''Adding content'''
<br>
If you feel like contributing to this wiki, please have a look at the [[Special:Wantedpages|pages]] that need creating and expanding. Currently we are hard at work on the wiki.
Before contributing, please have a read of our [[Project:Policy|rules]] and [[Project:Editing manual|editing manual]]. These guides details all the standards across this wiki, to ensure it is the best it can be.
}}
22439123dd6f9814698e9798d11d19b3f59b63ab
Game Development Wiki:Editing manual
4
157
445
424
2023-03-08T22:45:27Z
BlindCartographer
2
/* Templates */
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor. This page documents said customs and is a how-to guide on making good and safe edits on the wiki. This guide focuses on edits made in '''source editor''' as it is much neater, and as such all if not most edits should be made in source editor. This guide also goes hand in hand with the [[GDW:P|wiki rules]].
== Page Creation ==
Before creating a page, please make it on your [[Special:MyPage/Sandbox|sandbox]] page beforehand to make any further edits before fully releasing it.
=== Page Titles ===
Titles for pages should only have the first word capitalized (except for certain instances), excluding the namespace of the page.
The first instance of the page title on any given page should be in '''bold'''.
== General Guidelines ==
#'''This is a primarily English-speaking wiki'''. All pages and edits must be written in American English. Writing words in the style of British English out of habit will not be punished, but it will be reverted. This is to ensure that the writing on articles remain consistent. Pages should never be written or changed to be translated in another language. This will be reverted. Users of other languages are encouraged to use translating tools such as a translation software to read the pages.
#*Examples: <u>favorite</u> over favourite, <u>gray</u> over grey, <u>paralyze</u> over paralyse, <u>defense</u> over defence.
#'''Remain in 3rd person'''. Do not use personal pronouns like "I" or "me" or any words that give attention to the editors. Do not use "you" or "we" when referring to readers either.
#'''Slang words should rarely be used'''. In almost all situations, formal language is expected to be used when writing or describing things as the wiki aims to be informative. Do not use slang words unless it is in a direct quote.
#'''Keep it simple'''. Strive to make the wiki understandable for everyone without having to refer to a dictionary every other sentence. Use simple descriptions, understandable vocabulary and an easy-to-follow structuring that smoothly leads one sentence to the next. This does not mean editors cannot be descriptive or use synonyms to avoid repeating the same word over and over, but remember that word choice matters. Simplicity goes a long way to make reading through an article more enjoyable but variety helps make it interesting too.
#'''Keep a neutral point of view'''. All articles should remain as neutral as possible. Do not word anything in a page in a manner that could possibly inject personal biases or viewpoints to the subject. Remain objective as much as possible to present an article's subject fairly and reliably without editorial bias.
== Infoboxes ==
Infoboxes are the rectangular boxes on the right of articles that contain various information. Different infoboxes exist for different things, such as {{Tlx|Infobox programming language}} and {{Tlx|Infobox game engine}}. Almost all main articles should have infoboxes, but not every single one needs them, albeit in rare circumstances.
Most of the fields in an infobox should be filled, but if you do not have the information or the info is unnecessary, said info may not need to be added.
== Templates ==
Templates are featured on pages when they are fit. They come in many different shapes and forms, and sometimes have fields that can be filled in. For example; {{Tlx|Delete|reason for deletion}}. A few of the most often used templates and their meaning will be presented below:
*{{Tlx|Stub}} - For short pages lacking in information (a byte count of <span class="mw-plusminus-pos">1,200</span>-<span class="mw-plusminus-pos">2,400</span>)
*{{Tlx|Delete}} - For pages that break the rules, have under 1,200 bytes, heavily violate the editing manual, etc. Pages with under 1,000 bytes have 24 hours to gain enough bytes before deletion.
*{{Tlx|Cleanup}} - For pages that violate the editing tutorial in a non-extreme way. If a page stays a candidate for cleanup for too long, it may become a candidate for deletion.
== Categories ==
Do not add unapproved categories or random and irrelevant categories to pages. A full list of categories can be found at [[Special:Categories]]. New categories can be proposed [[Project:Requests for categories|here]].
== Talk Pages ==
Every user should always sign their messages by putting four tildes (<nowiki>~~~~</nowiki>) at the end of the message. You should reply to message by either leaving a response on the messengers talk page, or by replying on your own wall.
== Use of Wikipedia ==
We do not allow the direct copy and pasting or plagiarism of wikipedia articles or articles from other wikis. Using information provided in said articles is acceptable, but plagiarism is not.
== Other editing manuals ==
* [[Project:Editing manual/Tutorial manual|Tutorial article manual]]
[[Category:{{SITENAME}}]]
2ba3bd574da4d74d593708e877f481b01f988353
449
445
2023-03-09T00:28:29Z
BlindCartographer
2
/* Other editing manuals */
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor. This page documents said customs and is a how-to guide on making good and safe edits on the wiki. This guide focuses on edits made in '''source editor''' as it is much neater, and as such all if not most edits should be made in source editor. This guide also goes hand in hand with the [[GDW:P|wiki rules]].
== Page Creation ==
Before creating a page, please make it on your [[Special:MyPage/Sandbox|sandbox]] page beforehand to make any further edits before fully releasing it.
=== Page Titles ===
Titles for pages should only have the first word capitalized (except for certain instances), excluding the namespace of the page.
The first instance of the page title on any given page should be in '''bold'''.
== General Guidelines ==
#'''This is a primarily English-speaking wiki'''. All pages and edits must be written in American English. Writing words in the style of British English out of habit will not be punished, but it will be reverted. This is to ensure that the writing on articles remain consistent. Pages should never be written or changed to be translated in another language. This will be reverted. Users of other languages are encouraged to use translating tools such as a translation software to read the pages.
#*Examples: <u>favorite</u> over favourite, <u>gray</u> over grey, <u>paralyze</u> over paralyse, <u>defense</u> over defence.
#'''Remain in 3rd person'''. Do not use personal pronouns like "I" or "me" or any words that give attention to the editors. Do not use "you" or "we" when referring to readers either.
#'''Slang words should rarely be used'''. In almost all situations, formal language is expected to be used when writing or describing things as the wiki aims to be informative. Do not use slang words unless it is in a direct quote.
#'''Keep it simple'''. Strive to make the wiki understandable for everyone without having to refer to a dictionary every other sentence. Use simple descriptions, understandable vocabulary and an easy-to-follow structuring that smoothly leads one sentence to the next. This does not mean editors cannot be descriptive or use synonyms to avoid repeating the same word over and over, but remember that word choice matters. Simplicity goes a long way to make reading through an article more enjoyable but variety helps make it interesting too.
#'''Keep a neutral point of view'''. All articles should remain as neutral as possible. Do not word anything in a page in a manner that could possibly inject personal biases or viewpoints to the subject. Remain objective as much as possible to present an article's subject fairly and reliably without editorial bias.
== Infoboxes ==
Infoboxes are the rectangular boxes on the right of articles that contain various information. Different infoboxes exist for different things, such as {{Tlx|Infobox programming language}} and {{Tlx|Infobox game engine}}. Almost all main articles should have infoboxes, but not every single one needs them, albeit in rare circumstances.
Most of the fields in an infobox should be filled, but if you do not have the information or the info is unnecessary, said info may not need to be added.
== Templates ==
Templates are featured on pages when they are fit. They come in many different shapes and forms, and sometimes have fields that can be filled in. For example; {{Tlx|Delete|reason for deletion}}. A few of the most often used templates and their meaning will be presented below:
*{{Tlx|Stub}} - For short pages lacking in information (a byte count of <span class="mw-plusminus-pos">1,200</span>-<span class="mw-plusminus-pos">2,400</span>)
*{{Tlx|Delete}} - For pages that break the rules, have under 1,200 bytes, heavily violate the editing manual, etc. Pages with under 1,000 bytes have 24 hours to gain enough bytes before deletion.
*{{Tlx|Cleanup}} - For pages that violate the editing tutorial in a non-extreme way. If a page stays a candidate for cleanup for too long, it may become a candidate for deletion.
== Categories ==
Do not add unapproved categories or random and irrelevant categories to pages. A full list of categories can be found at [[Special:Categories]]. New categories can be proposed [[Project:Requests for categories|here]].
== Talk Pages ==
Every user should always sign their messages by putting four tildes (<nowiki>~~~~</nowiki>) at the end of the message. You should reply to message by either leaving a response on the messengers talk page, or by replying on your own wall.
== Use of Wikipedia ==
We do not allow the direct copy and pasting or plagiarism of wikipedia articles or articles from other wikis. Using information provided in said articles is acceptable, but plagiarism is not.
== Other editing manuals ==
* [[Project:Editing manual/Tutorial manual|Tutorial article manual]]
* [[Project:Editing manual/Voting guide|Guide on voting]]
[[Category:{{SITENAME}}]]
d181c5f96b89ec8e68987ee920fc9aa7b54b3ec1
Template:Wiki note
10
164
446
2023-03-09T00:05:18Z
BlindCartographer
2
Created page with "[[File:Pictogram voting info.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Note''' {{{note|Insert note here.}}} <noinclude> [[Category:Note templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Pictogram voting info.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Note''' {{{note|Insert note here.}}}
<noinclude>
[[Category:Note templates]]
</noinclude>
e4b07d7bf6313676e0a61923a6ba3c386fa3ef1a
447
446
2023-03-09T00:05:32Z
BlindCartographer
2
Protected "[[Template:Wiki note]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
[[File:Pictogram voting info.svg|18px|link=]] '''{{#if: {{{1|}}}|{{{1}}}}} Note''' {{{note|Insert note here.}}}
<noinclude>
[[Category:Note templates]]
</noinclude>
e4b07d7bf6313676e0a61923a6ba3c386fa3ef1a
448
447
2023-03-09T00:11:14Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Pictogram voting info.svg|18px|link=]] '''Note''' {{{1|Insert note here.}}}
<noinclude>
[[Category:Note templates]]
</noinclude>
6fe017b6b94c90c45e897ac22ee94a1c7f546355
Game Development Wiki:Requests for categories/Header
4
165
450
2023-03-09T00:29:43Z
BlindCartographer
2
Created page with "{{Nbox |header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span> |text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they..."
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
}}
577ea141525b1be290aa0ff958d050b291392f93
451
450
2023-03-09T00:29:55Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for categories/Header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
}}
577ea141525b1be290aa0ff958d050b291392f93
458
451
2023-03-09T00:47:53Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Requests for global rights
preload = Requests for global rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
1b0defa61c94232ff1a77bc9b9101a0668df1a61
459
458
2023-03-09T00:48:53Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Requests for categories
preload = Requests for global rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
ff08def71b154f7a4934aecd5671c3590d0da4b0
462
459
2023-03-09T00:56:39Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for categories
preload = Requests for global rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
6f85ccce9688658c3e6b23dfe71e3a27971d5d5d
463
462
2023-03-09T00:57:29Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">Requests for categories</span>
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for categories
preload = Project:Requests for categories/preload
buttonlabel = Add request
</inputbox>
</div>
}}
5b7695cdc85e60f47ea14d96ec646632ea6d961f
474
463
2023-03-09T01:43:23Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon tag-ltr.svg|34px|link=]] Requests for categories</span>
----
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for categories
preload = Project:Requests for categories/preload
buttonlabel = Add request
</inputbox>
</div>
}}
fb328b9937270f24173d50d1feb41921bbb34853
Game Development Wiki:Requests for categories
4
166
452
2023-03-09T00:31:09Z
BlindCartographer
2
Created page with "{{/Header}}"
wikitext
text/x-wiki
{{/Header}}
1ff841cd94035e8e943a943eb62bc319134852de
453
452
2023-03-09T00:31:20Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for categories]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite))
wikitext
text/x-wiki
{{/Header}}
1ff841cd94035e8e943a943eb62bc319134852de
454
453
2023-03-09T00:31:42Z
BlindCartographer
2
Changed protection settings for "[[Game Development Wiki:Requests for categories]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{/Header}}
1ff841cd94035e8e943a943eb62bc319134852de
466
454
2023-03-09T01:15:15Z
BlindCartographer
2
wikitext
text/x-wiki
{{/Header}}
__NOTOC__
== BlindCartographer's Request for the Cool guys category ==
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
User: [[User:BlindCartographer|BlindCartographer]]
=== Reason(s) for request ===
I think it would be neat if the cool guys category was added.
=== Additional comments given by user (if any) ===
I have no further comments
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
</div>
b6d50cdd500ced140263a9e01e4ee33a9915c6fe
467
466
2023-03-09T01:16:16Z
BlindCartographer
2
/* BlindCartographer's Request for the Cool guys category */
wikitext
text/x-wiki
{{/Header}}
__NOTOC__
86194b7a21d7721a368a271c1877f5084d671469
473
467
2023-03-09T01:34:59Z
BlindCartographer
2
wikitext
text/x-wiki
{{/Header}}
__NOTOC__
[[Category:Request pages]]
1dcfec5b15c861b91cb996d5d481f307b9de297c
Template:Staff note
10
167
455
2023-03-09T00:41:26Z
BlindCartographer
2
Created page with "[[File:Pictogram voting comment.svg|18px|link=]] '''{{{1|Staff}}} note''' {{{2|Insert note here.}}} <noinclude> [[Category:Note templates]] </noinclude>"
wikitext
text/x-wiki
[[File:Pictogram voting comment.svg|18px|link=]] '''{{{1|Staff}}} note''' {{{2|Insert note here.}}}
<noinclude>
[[Category:Note templates]]
</noinclude>
02e6689d7c3881e0175bafcfc1e9772e79f036c4
Game Development Wiki:Requests for categories/boilerplate
4
168
456
2023-03-09T00:41:59Z
BlindCartographer
2
Created page with "== {{{user}}}'s Request for the {{{category}}} category == User: [[User:{{{user}}}|{{{user}}}]] === Reason(s) for request === {{{reason}}} === Additional comments given by user (if any) === {{{comments|}}} === Questions for requester === === Comments by other users === === Support === === Neutral === === Oppose ==="
wikitext
text/x-wiki
== {{{user}}}'s Request for the {{{category}}} category ==
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
016f66859714408967145b86706ea2b16d99d782
457
456
2023-03-09T00:42:09Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for categories/boilerplate]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== {{{user}}}'s Request for the {{{category}}} category ==
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
016f66859714408967145b86706ea2b16d99d782
464
457
2023-03-09T01:11:17Z
BlindCartographer
2
wikitext
text/x-wiki
== {{{user}}}'s Request for the {{{category}}} category ==
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
</div>
877800e5ee551ba1e04171dea6ad4dd1294f585a
Game Development Wiki:Requests for categories/preload
4
169
460
2023-03-09T00:55:46Z
BlindCartographer
2
Created page with "<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa"> __NOTOC__ {{<includeonly>SUBST:</includeonly>:Project:Requests for categories/boilerplate |user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line --> |reason= <!-- Replace this section with the reason you are requesting a category. Please be thorough in this section and be sure to give any r..."
wikitext
text/x-wiki
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for categories/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting a category. Please be thorough in this section and be sure to give any reasons as to why it would be useful. -->
|category= <!-- The name of the category you want added -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
</div>
a038eddd83481992c2d018c0351385efe8ca432a
461
460
2023-03-09T00:55:59Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for categories/preload]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for categories/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting a category. Please be thorough in this section and be sure to give any reasons as to why it would be useful. -->
|category= <!-- The name of the category you want added -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
</div>
a038eddd83481992c2d018c0351385efe8ca432a
465
461
2023-03-09T01:13:33Z
BlindCartographer
2
wikitext
text/x-wiki
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for categories/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting a category. Please be thorough in this section and be sure to give any reasons as to why it would be useful. -->
|category= <!-- The name of the category you want added -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
ea1b901baf78d8deea515dff784d47f62438a495
Template:Request done
10
141
468
393
2023-03-09T01:17:31Z
BlindCartographer
2
wikitext
text/x-wiki
[[File:Yes check.svg|18px|link=]] '''Done''', {{{1|your request has been completed.}}} {{{note|}}}
<noinclude>{{Documentation}}
[[Category:Request templates]]
</noinclude>
2489414fb276512e0e18a218f4b73bc57f08597f
Game Development Wiki:Community portal
4
170
469
2023-03-09T01:26:59Z
BlindCartographer
2
Created page with "This page is the starting point for all editors of this wiki. It lists some of the pages you might like to use as you contribute here. * To follow the changes to this wiki, and to look out for new events and problem edits, use '''[[Special:Recentchanges|recent changes]]'''. * If you want to discuss anything about an article, you can use '''[[mw:Help:Talk pages|the talk pages]]'''. * For more general discussion, use '''[[Special:WikiForum|the discussions]]'''. * If you n..."
wikitext
text/x-wiki
This page is the starting point for all editors of this wiki. It lists some of the pages you might like to use as you contribute here.
* To follow the changes to this wiki, and to look out for new events and problem edits, use '''[[Special:Recentchanges|recent changes]]'''.
* If you want to discuss anything about an article, you can use '''[[mw:Help:Talk pages|the talk pages]]'''.
* For more general discussion, use '''[[Special:WikiForum|the discussions]]'''.
* If you need help editing, you could start with '''[[mw:Help:Editing pages|the tutorial]] on editing'''.
* You should also read our [[GDW:EM|editing manual]] for assistance with editing.
==New to Wikis?==
*If you are new to wikis, you may want to read the '''[[mw:Project:Help|MediaWiki tutorial]]'''.
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of '''[[Special:WantedPages|wanted pages]]''' for frequently linked-to articles that don't exist yet.
*Ask a [[Project:Staff|staff member]] for assistance or guidance.
==How to help out==
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of [[Special:WantedPages|wanted pages]] for frequently link-to articles that don't exist yet.
*To follow the changes to this wiki, and to look out for new users and edits see '''[[Special:RecentChanges|recent changes]]'''.
*You can find a list of useful templates on '''[[:Category:Templates]]'''.
==Looking for work?==
There's always plenty to do to help with the wiki, but sometimes it's hard to know what needs to be done. Check out some of the following pages for ideas.
*[[:Category:Stubs|Stubs]] - these are small pages that are lacking in content. You can help expand their content and write some more information on their pages.
*[[Special:UncategorizedPages|Uncategorized Pages]] - these are pages that have no categories and will be harder to find. You can help add categories to these pages to create a bigger network of pages.
*[[Special:Random|Stubbing, Cleanup, and Deleting]] - here at the Gamedev wiki, we have many pages and some that might not be up to standard. You can click the link to be taken to a random page and if that pages is lacking in content, needs cleaning up, or should be deleted, mark it with the templates [[Template:Stub|Stub]], [[Template:Cleanup|Cleanup]], or [[Template:Delete|Delete]].
[[Category:{{SITENAME}}]]
7154246d1670917d43080f2db62e938d74082977
470
469
2023-03-09T01:27:13Z
BlindCartographer
2
Protected "[[Game Development Wiki:Community portal]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
This page is the starting point for all editors of this wiki. It lists some of the pages you might like to use as you contribute here.
* To follow the changes to this wiki, and to look out for new events and problem edits, use '''[[Special:Recentchanges|recent changes]]'''.
* If you want to discuss anything about an article, you can use '''[[mw:Help:Talk pages|the talk pages]]'''.
* For more general discussion, use '''[[Special:WikiForum|the discussions]]'''.
* If you need help editing, you could start with '''[[mw:Help:Editing pages|the tutorial]] on editing'''.
* You should also read our [[GDW:EM|editing manual]] for assistance with editing.
==New to Wikis?==
*If you are new to wikis, you may want to read the '''[[mw:Project:Help|MediaWiki tutorial]]'''.
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of '''[[Special:WantedPages|wanted pages]]''' for frequently linked-to articles that don't exist yet.
*Ask a [[Project:Staff|staff member]] for assistance or guidance.
==How to help out==
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of [[Special:WantedPages|wanted pages]] for frequently link-to articles that don't exist yet.
*To follow the changes to this wiki, and to look out for new users and edits see '''[[Special:RecentChanges|recent changes]]'''.
*You can find a list of useful templates on '''[[:Category:Templates]]'''.
==Looking for work?==
There's always plenty to do to help with the wiki, but sometimes it's hard to know what needs to be done. Check out some of the following pages for ideas.
*[[:Category:Stubs|Stubs]] - these are small pages that are lacking in content. You can help expand their content and write some more information on their pages.
*[[Special:UncategorizedPages|Uncategorized Pages]] - these are pages that have no categories and will be harder to find. You can help add categories to these pages to create a bigger network of pages.
*[[Special:Random|Stubbing, Cleanup, and Deleting]] - here at the Gamedev wiki, we have many pages and some that might not be up to standard. You can click the link to be taken to a random page and if that pages is lacking in content, needs cleaning up, or should be deleted, mark it with the templates [[Template:Stub|Stub]], [[Template:Cleanup|Cleanup]], or [[Template:Delete|Delete]].
[[Category:{{SITENAME}}]]
7154246d1670917d43080f2db62e938d74082977
471
470
2023-03-09T01:27:26Z
BlindCartographer
2
wikitext
text/x-wiki
This page is the starting point for all editors of this wiki. It lists some of the pages you might like to use as you contribute here.
* To follow the changes to this wiki, and to look out for new events and problem edits, use '''[[Special:Recentchanges|recent changes]]'''.
* If you want to discuss anything about an article, you can use '''[[mw:Help:Talk pages|the talk pages]]'''.
* For more general discussion, use '''[[Special:WikiForum|the forums]]'''.
* If you need help editing, you could start with '''[[mw:Help:Editing pages|the tutorial]] on editing'''.
* You should also read our [[GDW:EM|editing manual]] for assistance with editing.
==New to Wikis?==
*If you are new to wikis, you may want to read the '''[[mw:Project:Help|MediaWiki tutorial]]'''.
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of '''[[Special:WantedPages|wanted pages]]''' for frequently linked-to articles that don't exist yet.
*Ask a [[Project:Staff|staff member]] for assistance or guidance.
==How to help out==
*If you want to help but you're not sure where to start, try improving the various '''[[:Category:Stubs|stub]]''' articles by adding content.
*Another helpful activity would be to check the list of [[Special:WantedPages|wanted pages]] for frequently link-to articles that don't exist yet.
*To follow the changes to this wiki, and to look out for new users and edits see '''[[Special:RecentChanges|recent changes]]'''.
*You can find a list of useful templates on '''[[:Category:Templates]]'''.
==Looking for work?==
There's always plenty to do to help with the wiki, but sometimes it's hard to know what needs to be done. Check out some of the following pages for ideas.
*[[:Category:Stubs|Stubs]] - these are small pages that are lacking in content. You can help expand their content and write some more information on their pages.
*[[Special:UncategorizedPages|Uncategorized Pages]] - these are pages that have no categories and will be harder to find. You can help add categories to these pages to create a bigger network of pages.
*[[Special:Random|Stubbing, Cleanup, and Deleting]] - here at the Gamedev wiki, we have many pages and some that might not be up to standard. You can click the link to be taken to a random page and if that pages is lacking in content, needs cleaning up, or should be deleted, mark it with the templates [[Template:Stub|Stub]], [[Template:Cleanup|Cleanup]], or [[Template:Delete|Delete]].
[[Category:{{SITENAME}}]]
c09d8198d1fa315faf2783e6be19e04db362ae60
Template:Infobox programming language
10
96
472
247
2023-03-09T01:31:50Z
BlindCartographer
2
wikitext
text/x-wiki
<infobox>
<title source="title1">
<default>{{PAGENAME}}</default>
</title>
<image source="image1">
<caption source="caption1"/>
</image>
<data source="filename_extension">
<label>Filename extension</label>
</data>
<data source="format">
<label>Format</label>
</data>
<data source="developer(s)">
<label>Developer(s)</label>
</data>
<data source="initial_release">
<label>Initial release</label>
</data>
<data source="latest_release">
<label>Latest release</label>
</data>
</infobox>
<includeonly>[[Category:Programming languages]]</includeonly>
923ed162df80e27587b31d0777f14c0ac5d636b9
Game Development Wiki:Community noticeboard/header
4
171
475
2023-03-09T02:02:12Z
BlindCartographer
2
Created page with "{{Nbox |header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon userGroup-ltr.svg|34px|link=]] Community noticeboard</span> ---- |text=This noticeboard is for community discussion, generally wiki-wide in nature or which relate to specific pages or users. For requests that require [[Project:Administrators|administrator]] intervention, please see the [[Project:Administrator Noticeboard|administrator noticeboard]]. If you are simply trying to discuss wi..."
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon userGroup-ltr.svg|34px|link=]] Community noticeboard</span>
----
|text=This noticeboard is for community discussion, generally wiki-wide in nature or which relate to specific pages or users. For requests that require [[Project:Administrators|administrator]] intervention, please see the [[Project:Administrator Noticeboard|administrator noticeboard]]. If you are simply trying to discuss with other wiki users, please visit the [[Special:WikiForum|wiki forums]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
On '''Community noticeboard''', you can:
:* Start a community discussion
:* Notify the community of a request (for user rights, categories, etc.) that you have made
:* Ask questions with the community and the wiki or some technical aspect of the wiki you want to know more about
If you would like to request...
:* ...to be added to a wiki user group, read [[Game Development Wiki:Promotion to staff|this]] first, and then visit [[Project:Requests for user rights|here]] afterwards.
:* ...a page be undeleted, you can find the proper page [[Project:Requests for undeletion|here]].
:* ...that an [[Project:Administrators|administrator]] warn or sanction a blatantly disruptive or spam only account, please see [[Project:Administrator Noticeboard|the administrator noticeboard]]
:* ...that a new category be added to the wiki, see [[project:Requests for categories|here]].
<div style="text-align:center;">To add your request, type in a concise title in the box below, then click "Add topic".</div>
<inputbox>
type=commenttitle
buttonlabel=Add topic
summary= Add new topic
page=Project:Community noticeboard
</inputbox>
}}
e2ba5f199659dc0e00d1a915058d32d4fa54dd8c
477
475
2023-03-09T02:03:06Z
BlindCartographer
2
Protected "[[Game Development Wiki:Community noticeboard/header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon userGroup-ltr.svg|34px|link=]] Community noticeboard</span>
----
|text=This noticeboard is for community discussion, generally wiki-wide in nature or which relate to specific pages or users. For requests that require [[Project:Administrators|administrator]] intervention, please see the [[Project:Administrator Noticeboard|administrator noticeboard]]. If you are simply trying to discuss with other wiki users, please visit the [[Special:WikiForum|wiki forums]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
On '''Community noticeboard''', you can:
:* Start a community discussion
:* Notify the community of a request (for user rights, categories, etc.) that you have made
:* Ask questions with the community and the wiki or some technical aspect of the wiki you want to know more about
If you would like to request...
:* ...to be added to a wiki user group, read [[Game Development Wiki:Promotion to staff|this]] first, and then visit [[Project:Requests for user rights|here]] afterwards.
:* ...a page be undeleted, you can find the proper page [[Project:Requests for undeletion|here]].
:* ...that an [[Project:Administrators|administrator]] warn or sanction a blatantly disruptive or spam only account, please see [[Project:Administrator Noticeboard|the administrator noticeboard]]
:* ...that a new category be added to the wiki, see [[project:Requests for categories|here]].
<div style="text-align:center;">To add your request, type in a concise title in the box below, then click "Add topic".</div>
<inputbox>
type=commenttitle
buttonlabel=Add topic
summary= Add new topic
page=Project:Community noticeboard
</inputbox>
}}
e2ba5f199659dc0e00d1a915058d32d4fa54dd8c
Game Development Wiki:Community noticeboard
4
172
476
2023-03-09T02:02:45Z
BlindCartographer
2
Created page with "{{/header}} [[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
{{/header}}
[[Category:{{SITENAME}}]]
3a920a2007e0191ba4f328695f88647df622e163
Game Development Wiki:Requests for categories/Header
4
165
478
474
2023-03-09T02:07:00Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon tag-ltr.svg|34px|link=]] Requests for categories</span>
----
|text=On this page, users may request the addition of new official categories. Since you may only add official categories to pages, it is possible that the wiki may be lacking a category that could be beneficial. If you believe we could use a new category that is not already present, you may suggest it here. The community has a minimum of 7 days to vote on whether or not they believe the category should be added to the wiki. Once the voting process is over, an [[Project:Administrators|administrator]] will confirm or deny the addition of the new category based on the number of votes. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br />
<br>
{{Wiki note|The category you are searching for may already exist. Please look through [[Special:Categories]] and make sure no categories that serve the same or a very similar purpose already exist. If they do, your request will be denied. If you are unsure if a category serves a similar purpose, read the category's page or, if there is no information there, ask a [[Project:Staff|staff member]].}}
Notes:
* You are only allow to vote once in a given request.
* Please do not constantly re-request a category if it has been declined before. After it becomes excessive, it will be removed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for categories
preload = Project:Requests for categories/preload
buttonlabel = Add request
</inputbox>
</div>
}}
bcbbc51735a145c31a682acf94a89826d40dbba5
MediaWiki:Sidebar
8
25
479
227
2023-03-09T02:08:37Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** Game Development Wiki:Policy|Policies
** Game Development Wiki:Editing manual|Editing manual
** Special:WikiForum|Forums
** Special:AllPages|All pages
** Game Development Wiki:Staff|Wiki staff
** Project:Community noticeboard|Community noticeboard
** Project:Administrator Noticeboard|Administrator noticeboard
** Project:Community portal|Community portal
* SEARCH
* TOOLBOX
* LANGUAGES
fd9cb93f9fcd6469438929b3e23c325d7ed2e917
Game Development Wiki:Requests for user rights
4
173
480
2023-03-09T02:10:49Z
BlindCartographer
2
Created page with "{{/header}} [[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
{{/header}}
[[Category:{{SITENAME}}]]
3a920a2007e0191ba4f328695f88647df622e163
481
480
2023-03-09T02:11:09Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for user rights]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{/header}}
[[Category:{{SITENAME}}]]
3a920a2007e0191ba4f328695f88647df622e163
511
481
2023-03-12T22:28:34Z
BlindCartographer
2
Changed protection settings for "[[Game Development Wiki:Requests for user rights]]": Important to wiki ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{/header}}
[[Category:{{SITENAME}}]]
3a920a2007e0191ba4f328695f88647df622e163
Gdscript
0
97
482
433
2023-03-09T02:18:41Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox programming language
| title1= Gdscript
| image1= [[File:gdscript.png]]
| caption1= An example of Gdscript
| filename_extension= .gd
| format= [[Object orientated programming]]
| developer(s)=[[Godot]]
| initial_release=January 14th, 2014
| latest_release= March 1st, 2023
}}
{{Stub}}
'''Gdscript''' is an [[Object orientated programming|object orientated programming]] language created for the [[Godot]] [[Game engine|game engine]].<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref> Its syntax is similar to [[Python]]<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref>, however the two are completely seperate and independent scripting languages.
== History ==
== Syntax ==
== References ==
{{Reflist}}
[[Category:Godot]]
[[Category:Object orientated programming languages]]
ec7a94e302f02ba574e1cf2097c70ef2426b3fb4
518
482
2023-03-12T23:23:16Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox programming language
| title1= Gdscript
| image1= [[File:gdscript.png]]
| caption1= An example of Gdscript
| filename_extension= .gd
| format= [[Object orientated programming]]
| developer(s)=[[Godot]]
| initial_release=January 14th, 2014
| latest_release= March 1st, 2023
}}
{{Stub}}
'''Gdscript''' is an [[Object orientated programming|object orientated programming]] language created for the [[Godot]] [[Game engine|game engine]].<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref> Its syntax is similar to [[Python]]<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref>, however the two are completely seperate and independent scripting languages.
== History ==
== Syntax ==
== References ==
{{Reflist}}
[[Category:Godot]]
[[Category:Object orientated programming languages]]
<comments />
4e644a691433a8389a9bbe7764beaab070fa8044
519
518
2023-03-12T23:23:56Z
BlindCartographer
2
wikitext
text/x-wiki
{{Infobox programming language
| title1= Gdscript
| image1= [[File:gdscript.png]]
| caption1= An example of Gdscript
| filename_extension= .gd
| format= [[Object orientated programming]]
| developer(s)=[[Godot]]
| initial_release=January 14th, 2014
| latest_release= March 1st, 2023
}}
{{Stub}}
'''Gdscript''' is an [[Object orientated programming|object orientated programming]] language created for the [[Godot]] [[Game engine|game engine]].<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref> Its syntax is similar to [[Python]]<ref>https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html</ref>, however the two are completely seperate and independent scripting languages.
== History ==
== Syntax ==
== References ==
{{Reflist}}
[[Category:Godot]]
[[Category:Object orientated programming languages]]
ec7a94e302f02ba574e1cf2097c70ef2426b3fb4
Game Development Wiki:Administrator Noticeboard/header
4
174
483
2023-03-09T02:22:44Z
BlindCartographer
2
Created page with "{{Nbox |header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon globe.svg|34px|link=]] Administrator noticeboard</span> ---- |text=The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are Special:Recentchanges|seen to be..."
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon globe.svg|34px|link=]] Administrator noticeboard</span>
----
|text=The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|Delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center><div class="plainlinks">[{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}} {{Button|Add new report|color=blue}}]</div></center>
}}
bcf4c3d8fe0b2922779710f2902153392332790b
484
483
2023-03-09T02:22:54Z
BlindCartographer
2
Protected "[[Game Development Wiki:Administrator Noticeboard/header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon globe.svg|34px|link=]] Administrator noticeboard</span>
----
|text=The '''Administrator noticeboard''' is one way through which users can notify [[Game Development Wiki:Administrators|administrators]] of issues needing administrative attention. While users are welcome to directly contact specific administrators on their talk page (especially if they are [[Special:Recentchanges|seen to be active]]), posting here can be an easier way of ensuring that at least one admin will notice an issue and respond to it promptly. Remember to sign (using four tildes: <code>~~<nowiki/>~~</code>) when posting an issue.
'''Before posting''' an issue here, please consider the following:
* This page is for ''reporting'' wiki issues. '''Please post discussions [[Game Development Wiki talk:Administrator Noticeboard|on the talk page]]'''.
* Post only issues that ''require'' administrative action, i.e. blocking vandals, protecting pages, restoring deleted pages etc.
* Do not post deletion requests here. Deletion requests should be made by adding '''{{Tlx|Delete|reason for deletion request}}''' to the top of the target page, which will then automatically mark the page as a [[:Category:Candidates for deletion|candidate for deletion]].
* Mediation requests between users should only be made once a resolution could not be reached between users.
In case of vandalism, such requests should also be posted on an individual administrators talk page. Revert it first, anyone can do so. If the vandal created a new page, tag it for deletion. Assume good faith and consider leaving a message on that user's message wall to explain the reason. Post here only if the user has made several disruptive edits and/or persists despite a warning. Always ''avoid a revert war'' with the vandal; it is far better to wait until an admin has a chance to intervene. If a user must be reported here, please use their username as the subject title and a link to their contributions.
<br>
<br>
<center><div class="plainlinks">[{{fullurl:{{SITENAME}}:{{BASEPAGENAME}}|action=edit§ion=new}} {{Button|Add new report|color=blue}}]</div></center>
}}
bcf4c3d8fe0b2922779710f2902153392332790b
Game Development Wiki:Administrator Noticeboard
4
86
485
243
2023-03-09T02:23:04Z
BlindCartographer
2
Replaced content with "{{/header}} <!-- EDIT BELOW THIS LINE --> [[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
{{/header}}
<!-- EDIT BELOW THIS LINE -->
[[Category:{{SITENAME}}]]
8dcee5a229d9be94390d07bb8744b19c9bb29b18
Template:Account changed
10
139
486
390
2023-03-09T02:25:04Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|image=[[File:Nuvola apps kuser rename.png|45px|link=User:{{{name|DifferentName}}}]]
|text='''This user has moved accounts.'''<br />
This user has moved to an account under a new username: [[User:{{{name|DifferentName}}}|{{{name|DifferentName}}}]]. Please do not attempt to contact this account anymore.
}}
<noinclude>
{{Documentation}}
[[Category:User management templates]]
[[Category:Templates]]
</noinclude>
0b05c0eb8464ab1982f9efd4f66a71e46556e897
Template:Account hacked
10
175
487
2023-03-09T02:28:40Z
BlindCartographer
2
Created page with "{{Ombox |image=[[File:Ambox useraccounts compromised.svg|45px|link=]] |text='''This user's account has been compromised.'''<br /> This user's account has been hacked and/or compromised. As such, they have been blocked and will remain blocked until they regain access of their account. {{#if: {{{new name|}}}|[[User:{{{new name|NewName}}}|{{{new name|NewName}}}]] is their new account.}} }} <noinclude> {{Documentation}} [[Category:User management templates]] Category:Templ..."
wikitext
text/x-wiki
{{Ombox
|image=[[File:Ambox useraccounts compromised.svg|45px|link=]]
|text='''This user's account has been compromised.'''<br />
This user's account has been hacked and/or compromised. As such, they have been blocked and will remain blocked until they regain access of their account. {{#if: {{{new name|}}}|[[User:{{{new name|NewName}}}|{{{new name|NewName}}}]] is their new account.}}
}}
<noinclude>
{{Documentation}}
[[Category:User management templates]]
[[Category:Templates]]
</noinclude>
d56e4606f2d41d022ba40df3ec3b2be4cc5613f8
Game Development Wiki:Requests for user rights/header
4
176
488
2023-03-09T02:31:45Z
BlindCartographer
2
Created page with "{{Nbox |header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon unStar.svg|34px|link=]] Requests for user rights</span> ---- |text=On this page, users may request that they be promoted to [[Project:Staff|staff]] or granted the permissions of another user group. Before requesting user rights, please read [[Project:Staff/Promotion to staff|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting. <br> <br> Notes: * You are only..."
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon unStar.svg|34px|link=]] Requests for user rights</span>
----
|text=On this page, users may request that they be promoted to [[Project:Staff|staff]] or granted the permissions of another user group. Before requesting user rights, please read [[Project:Staff/Promotion to staff|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allow to vote once in a given request.
* If you have made a declined request within the last 30 days, you may not add another request until 30 days have passed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user rights
preload = Project:Requests for user rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
460f1f4269fc062eba2881231411f96cff0be3d6
489
488
2023-03-09T02:32:05Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for user rights/header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon unStar.svg|34px|link=]] Requests for user rights</span>
----
|text=On this page, users may request that they be promoted to [[Project:Staff|staff]] or granted the permissions of another user group. Before requesting user rights, please read [[Project:Staff/Promotion to staff|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allow to vote once in a given request.
* If you have made a declined request within the last 30 days, you may not add another request until 30 days have passed.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user rights
preload = Project:Requests for user rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
460f1f4269fc062eba2881231411f96cff0be3d6
508
489
2023-03-12T22:25:04Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon unStar.svg|34px|link=]] Requests for user rights</span>
----
|text=On this page, users may request that they be promoted to [[Project:Staff|staff]] or granted the permissions of another user group. Before requesting user rights, please read [[Project:Staff/Promotion to staff|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allow to vote once in a given request.
* If you have made a declined request within the last 30 days, you may not add another request until 30 days have passed.
* After leaving a request, please notify the community on the [[GDW:CN|community noitceboard]] that you have made a new request.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user rights
preload = Project:Requests for user rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
229f0a474ad10c47eb48e035fd63924d4c10e37b
513
508
2023-03-12T22:35:59Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon unStar.svg|34px|link=]] Requests for user rights</span>
----
|text=On this page, users may request that they be promoted to [[Project:Staff|staff]] or granted the permissions of another user group. Before requesting user rights, please read [[Project:Staff/Promotion to staff|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allowed to vote once in a given request.
* If you have made a declined request within the last 30 days, you may not add another request until 30 days have passed.
* After leaving a request, please notify the community on the [[GDW:CN|community noitceboard]] that you have made a new request.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user rights
preload = Project:Requests for user rights/preload
buttonlabel = Add request
</inputbox>
</div>
}}
40dce9a4ca886f98e22a3c7197d557e4524d33ec
Game Development Wiki:Staff
4
74
490
232
2023-03-09T02:33:54Z
BlindCartographer
2
/* Promotion */
wikitext
text/x-wiki
The Gamedev Wiki has a team of users with extra rights, abilities, and privileges, referred to '''staff members''', that use their abilities to moderate and keep the balance of the wiki. The staff are experienced and respected users chosen by the community, and sworn in by the wiki Bureaucrats. The staff are merely normal users with a few extra rights, and are not above the rules, nor should they be treated differently than any other users.
If there is a case of a staff member abusing their rights, or you personally believe this is the case, please contact a [[Project:Staff#Bureaucrat|bureaucrat]] or the [[User talk:BlindCartographer|wiki manager]] and the situation will be dealt with accordingly. If it is a bureaucrat or the wiki manager that is abusing their rights, please contact a [[m:Stewards' Noticeboard|Miraheze steward]].
== Wiki Staff ==
Below the different staff user groups, their hierarchy, and their abilities will be listed below.
=== Executive Wiki Manager ===
The '''executive wiki manager''' (or simply just the '''wiki manager'''), is the head bureaucrat and lead staff member. They have the same rights and abilities as a normal bureaucrat, but they are typically the most experienced bureaucrat and have the longest standing history on the wiki. They have absolute final say in extremely important wiki decisions, like using [[Special:ProtectSite|ProtectSite]], major wiki updates/changes, and promoting new bureaucrats. Despite this, they are not "wiki owners" as it is not one individual person who owns the wiki, but instead the community at large.
There may only be one wiki manager at a time, and the current wiki manager is [[User:BlindCartographer|BlindCartographer]].
=== Bureaucrat ===
'''Bureaucrats''' are users who share the same rights as [[Project:Staff#Administrator|administrators]], but they also have a few extra rights for directly managing the wiki. They have, in addition to all administrator rights, access to [[mw:Extension:ManageWiki|ManageWiki]], [[mw:Extension:ProtectSite|ProtectSite]], and have perhaps their main ability, which is to edit and promote others to all user rights other than global Miraheze rights. While they can promote and demote others to all user rights on this page, they can not remove the bureaucrat right from another user, as that requires [[m:Stewards|steward]] intervention.
The list of all current bureaucrats can be found [[Special:ListUsers/bureaucrat|here]].
=== Administrator ===
'''Administrators''' are users who have all the abilities of [[Project:Staff#Moderator|Moderators]], [[Project:Staff#Interface Administrator|interface administrators]], and [[Project:Staff#Forum Administrator|forum administrators]]. In addition, they have the ability to block and unblock users, mass delete pages, and edit the abusefilter, among other many other administrative duties and rights. They can also promote other users to the rollbacker group and [[Project:Staff#Confirmed|confirmed]] group.
The list of all current admins can be found [[Special:ListUsers/sysop|here]].
=== Interface Administrator ===
'''Interface administrators''' are users who can edit [[Special:AllMessages|all pages]] in the MediaWiki namespace (system messages), edit sitewide CSS, JavaScript, and JSON pages and files, along with other users personal CSS, JavaScript, and JSON pages and files. Since these abilities hold a lot of power and can pose a security risk if misused, only extremely trusted users are given access to the privileges of this group.
The list of all current interface admins can be found [[Special:ListUsers/interface-admin|here]].
=== Moderator ===
'''Moderators''' are users who can delete/undelete pages, protect/unprotect pages, and edit protected pages, along with having the rights of a [[Project:Staff#Rollbacker|rollbacker]]. They also have the ability to edit, delete/undelete, protect/undelete, and move files.
The list of all current moderators can be found [[Special:ListUsers/moderator|here]].
=== Forum Administrator ===
'''Forum administrators''' are users with the ability to add, edit and delete categories on the [[Special:WikiForum|forums]], along with the ability to edit and delete threads and replies on the [[Special:WikiForum|forums]]. However, due to a bug which posed a major security risk, the forums are currently disabled, and will be until the bug is resolved.
The list of all current forum administrators can be found [[Special:ListUsers/forumadmin|here]].
=== Rollbacker ===
'''Rollbackers''' are users who are given one extra ability; the right to undo several edits by a single user in a row in a single click. Since this right is made to fight vandalism and spam, users who have consistently proven to be good at reverting vandalism are assigned to this group.
The list of all current rollbackers can be found [[Special:ListUsers/rollbacker|here]].
== Non-Staff user groups ==
=== Abusefilter Editor ===
'''Abusefilter editors''' are users who can edit and add [[Special:Abusefilter|abuse filters]], along with being able to view private abuse filters. They can also revert changes made by any given abuse filter. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current abusefilter editors can be found [[Special:ListUsers/abusefilter-editor|here]].
=== Autoconfirmed ===
'''Autoconfirmed''' users are users who have been on the wiki for more than 4 days and have made at least 10 edits on the wiki. Autoconfirmed users have the ability to edit semi-protected pages, and the ability to skip CAPTCHAs. Since this makes up such a large majority of users and the bulk of all users, users in this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Autopatrolled ===
'''Autopatrolled''' users are users who's edits are automatically patrolled, so that an administrator doesn't have to do it manually. They can also patrol the edits of other users, and like autoconfirmed users, can skip CAPTCHAs. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Bot ===
'''Bot''' is a group which classifies a user as an automated process or bot. These users have their edits hidden in the [[Special:RecentChanges]] by default to prevent them from clogging the page (though you can view their recent actions by removing the "Human (not bot)" filter in Special:RecentChanges). In addition to that, they have certain other rights assigned to them to prevent them from getting caught in the CAPTCHAs, prevent them from getting caught in IP-based rate limits, among a few other rights to prevent any interference for legitimate bots. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
The list of all current bots can be found [[Special:ListUsers/bot|here]].
=== Confirmed ===
'''Confirmed''' users are users that have the exact same abilities as an [[Project:Staff#Autoconfirmed|autoconfirmed]] user, except they are manually promoted to this user group, unlike the autopromotion of autoconfirmed users. Users assigned to this group are not considered staff, unlike the other user groups in the "wiki staff" section.
=== Founder ===
The wiki '''founder''' is the user who is responsible for founding and creating the wiki. While the founder is currently staff and executive wiki manager, if and when he retires, he will no longer be staff, which is why this role is not considered to be staff. The founder role has no additional rights or abilities.
The wiki founder is [[User:BlindCartographer|BlindCartographer]].
== Promotion ==
The methods of promotion to different user groups can be found [[Project:Staff/Promotion to staff|here]].
[[Category:{{SITENAME}}]]
96ef622478944ebaa7e7de4af72d3aa751c107f5
Game Development Wiki:Staff/Promotion to staff
4
177
491
2023-03-09T02:34:06Z
BlindCartographer
2
Created page with "There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group."
wikitext
text/x-wiki
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group.
25c38099359fd55d0a715ce12fafabb0b2a79c88
492
491
2023-03-09T02:34:15Z
BlindCartographer
2
Protected "[[Game Development Wiki:Staff/Promotion to staff]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group.
25c38099359fd55d0a715ce12fafabb0b2a79c88
495
492
2023-03-10T01:02:58Z
BlindCartographer
2
wikitext
text/x-wiki
{{Staff note|Wiki manager|These are currently malleable as the wiki is in need of more staff members, however some of it still applies.}}
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group. This page documents said qualifications, and what they are for each individual user group. If there remains any confusion or you have any questions, please ask a [[Project:Staff#Bureaucrat|bureaucrat]].
== Staff ==
=== Bureaucrat ===
Unlike the other staff groups, there is no direct way to request [[Project:Staff#Bureaucrat|bureaucrat]] rights. The current wiki bureaucrats will talk amongst themselves and decide which administrator(s) they think would be a good fit for bureaucrat, and they will then hold a vote on the [[GDW:CN|community noticeboard]] for 14 days, allowing the community to vote on whether or not said user should be a bureaucrat. If the community consensus thinks that said admin should become a bureaucrat, they will be promoted.
In order to qualify for bureaucrat rights, you must be a trusted and experienced administrator that has used their rights well, who has had their rights for a minimum of 60 days.
=== Administrator ===
=== Interface Administrator ===
=== Moderator ===
=== Forum Administrator ===
=== Rollbacker ===
== Other user groups ==
=== Abusefilter editor ===
=== Autopatroll ===
=== Bot ===
=== Confirmed ===
There is no formal way to request promotion to the [[Project:Staff#Confirmed|confirmed]] user group. The two most common reasons somebody becomes confirmed is if they directly ask a bureaucrat for it and they oblige, or if an already (auto)confirmed user makes a secondary account and doesn't want to wait the four days to become autoconfirmed.
== Request user rights ==
Visit [[Project:Requests for user rights|this page]] if you would like to request user rights.
e419531b1f5120201bc77ea9fd133733bda81dd3
497
495
2023-03-12T21:28:37Z
BlindCartographer
2
wikitext
text/x-wiki
{{Staff note|Wiki manager|These are currently malleable as the wiki is in need of more staff members, however some of it still applies.}}
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group. This page documents said qualifications, and what they are for each individual user group. If there remains any confusion or you have any questions, please ask a [[Project:Staff#Bureaucrat|bureaucrat]].
== Staff ==
=== Bureaucrat ===
Unlike the other staff groups, there is no direct way to request [[Project:Staff#Bureaucrat|bureaucrat]] rights. The current wiki bureaucrats will talk amongst themselves and decide which administrator(s) they think would be a good fit for bureaucrat, and they will then hold a vote on the [[GDW:CN|community noticeboard]] for 14 days, allowing the community to vote on whether or not said user should be a bureaucrat. If the community consensus thinks that said admin should become a bureaucrat, they will be promoted.
=== Administrator ===
In order for a user to become an administrator, they must have been a well established, friendly, and trusted moderator or interface/forum administrator for a minimum of 60 days. The recommended minimum amount of edits for a user applying to become an administrator is 2,000.
=== Interface Administrator ===
In order for a user to become an interface administrator, they must have been a well established, friendly, and user, with a minimum of 1,000 edits. Since the rights of an interface administrator could be misused to pose a security risk, this is exclusively given to well-trusted users who must show that they have experience with CSS, JavaScript, and/or JSON.
=== Moderator ===
=== Forum Administrator ===
=== Rollbacker ===
== Other user groups ==
=== Abusefilter editor ===
=== Autopatroll ===
=== Bot ===
=== Confirmed ===
There is no formal way to request promotion to the [[Project:Staff#Confirmed|confirmed]] user group. The two most common reasons somebody becomes confirmed is if they directly ask a bureaucrat for it and they oblige, or if an already (auto)confirmed user makes a secondary account and doesn't want to wait the four days to become autoconfirmed.
== Request user rights ==
Visit [[Project:Requests for user rights|this page]] if you would like to request user rights.
801349041c94cd8c9e1f0671089e4b08e7921306
501
497
2023-03-12T22:11:38Z
BlindCartographer
2
wikitext
text/x-wiki
{{Staff note|Wiki manager|These are currently malleable as the wiki is in need of more staff members, however some of it still applies.}}
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group. This page documents said qualifications, and what they are for each individual user group. If there remains any confusion or you have any questions, please ask a [[Project:Staff#Bureaucrat|bureaucrat]].
== Staff ==
=== Bureaucrat ===
Unlike the other staff groups, there is no direct way to request [[Project:Staff#Bureaucrat|bureaucrat]] rights. The current wiki bureaucrats will talk amongst themselves and decide which administrator(s) they think would be a good fit for bureaucrat, and they will then hold a vote on the [[GDW:CN|community noticeboard]] for 14 days, allowing the community to vote on whether or not said user should be a bureaucrat. If the community consensus thinks that said admin should become a bureaucrat, they will be promoted.
=== Administrator ===
In order for a user to become an administrator, they must be a well established, friendly, and trusted moderator or interface/forum administrator for a minimum of 60 days. The recommended minimum amount of edits for a user applying to become an administrator is 2,000.
=== Interface Administrator ===
In order for a user to become an interface administrator, they must be a well established, friendly, and responsible user with a minimum of 1,200 edits. Since the rights of an interface administrator could be misused to pose a security risk, this is exclusively given to well-trusted users who must show that they have experience with CSS, JavaScript, and/or JSON.
=== Moderator ===
In order for a user to become a moderator, they must be a well established, friendly, and responsible rollbacker with a minimum of 1,000 edits.
=== Forum Administrator ===
Currently, the [[Special:WikiForum|forums]] are disabled due to a security risk, but they will be reopened as soon as the problem is solved.
=== Rollbacker ===
In order for a user to become an rollbacker, they must be a well established, responsible, friendly, and active user with a minimum of 300 edits. A user is more likely to become a rollbacker if they have consistently reverted vandalism throughout their time on the wiki.
== Other user groups ==
=== Abusefilter editor ===
In order for a user to become an abusefilter editor, they must be a well established, responsible, friendly, and active user, with a minimum of 500 edits who has shown they that understand the proper syntax and regex of the [[Special:AbuseFilter|AbuseFilter]].
=== Autopatroll ===
In order for a user to become an autopatroller, they must have been a well established, responsible, friendly, and active user, with a minimum of 400 edits.
=== Bot ===
In order for a user to become a bot, they must list the following information in their request (which should be made by the bot operator, not the bot account):
* The username of the bot
* If it is semi or fully automated
* The ''exact'' scope and purpose of the bot
* What software it uses, or how it acts as a bot.
If a user would like to apply for a temporary bot flag on one of their accounts, they may contact a bureaucrat on their talk page, following the process as listed above.
=== Confirmed ===
There is no formal way to request promotion to the [[Project:Staff#Confirmed|confirmed]] user group. The two most common reasons somebody becomes confirmed is if they directly ask a bureaucrat for it and they oblige, or if an already (auto)confirmed user makes a secondary account and doesn't want to wait the four days to become autoconfirmed.
== Demotion ==
A user may be demoted or removed from a user group if they have shown to be inactive for 60 or more days, have abused their rights, have broken the wiki rules, or have done something similar.
== Request user rights ==
Visit [[Project:Requests for user rights|this page]] if you would like to request user rights.
31d0a987122c63634263d426a6f0a07dffba94bc
502
501
2023-03-12T22:12:19Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
{{Staff note|Wiki manager|These are currently malleable as the wiki is in need of more staff members, however some of it still applies.}}
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group. This page documents said qualifications, and what they are for each individual user group. If there remains any confusion or you have any questions, please ask a [[Project:Staff#Bureaucrat|bureaucrat]].
== Staff ==
=== Bureaucrat ===
Unlike the other staff groups, there is no direct way to request [[Project:Staff#Bureaucrat|bureaucrat]] rights. The current wiki bureaucrats will talk amongst themselves and decide which administrator(s) they think would be a good fit for bureaucrat, and they will then hold a vote on the [[GDW:CN|community noticeboard]] for 14 days, allowing the community to vote on whether or not said user should be a bureaucrat. If the community consensus thinks that said admin should become a bureaucrat, they will be promoted.
=== Administrator ===
In order for a user to become an administrator, they must be a well established, friendly, and trusted moderator or interface/forum administrator for a minimum of 60 days. The recommended minimum amount of edits for a user applying to become an administrator is 2,000.
=== Interface Administrator ===
In order for a user to become an interface administrator, they must be a well established, friendly, and responsible user with a minimum of 1,200 edits. Since the rights of an interface administrator could be misused to pose a security risk, this is exclusively given to well-trusted users who must show that they have experience with CSS, JavaScript, and/or JSON.
=== Moderator ===
In order for a user to become a moderator, they must be a well established, friendly, and responsible rollbacker with a minimum of 1,000 edits.
=== Forum Administrator ===
Currently, the [[Special:WikiForum|forums]] are disabled due to a security risk, but they will be reopened as soon as the problem is solved.
=== Rollbacker ===
In order for a user to become an rollbacker, they must be a well established, responsible, friendly, and active user with a minimum of 300 edits. A user is more likely to become a rollbacker if they have consistently reverted vandalism throughout their time on the wiki.
== Other user groups ==
=== Abusefilter editor ===
In order for a user to become an abusefilter editor, they must be a well established, responsible, friendly, and active user, with a minimum of 500 edits who has shown they that understand the proper syntax and regex of the [[Special:AbuseFilter|AbuseFilter]].
=== Autopatroll ===
In order for a user to become an autopatroller, they must have been a well established, responsible, friendly, and active user, with a minimum of 400 edits.
=== Bot ===
In order for a user to become a bot, they must list the following information in their request (which should be made by the bot operator, not the bot account):
* The username of the bot
* If it is semi or fully automated
* The ''exact'' scope and purpose of the bot
* What software it uses, or how it acts as a bot
If a user would like to apply for a temporary bot flag on one of their accounts, they may contact a bureaucrat on their talk page, following the process as listed above.
=== Confirmed ===
There is no formal way to request promotion to the [[Project:Staff#Confirmed|confirmed]] user group. The two most common reasons somebody becomes confirmed is if they directly ask a bureaucrat for it and they oblige, or if an already (auto)confirmed user makes a secondary account and doesn't want to wait the four days to become autoconfirmed.
== Demotion ==
A user may be demoted or removed from a user group if they have shown to be inactive for 60 or more days, have abused their rights, have broken the wiki rules, or have done something similar.
== Request user rights ==
Visit [[Project:Requests for user rights|this page]] if you would like to request user rights.
2421afa48f13dc1e9fb260b27a5e8d8ecde6449d
510
502
2023-03-12T22:28:08Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
{{Staff note|Wiki manager|These are currently malleable as the wiki is in need of more staff members, however some of it still applies.}}
There are certain qualifications a user must meet into order to become a [[Project:{{BASEPAGENAME}}|staff member]] or be promoted to a certain user group. This page documents said qualifications, and what they are for each individual user group. If there remains any confusion or you have any questions, please ask a [[Project:Staff#Bureaucrat|bureaucrat]].
== Staff ==
=== Bureaucrat ===
Unlike the other staff groups, there is no direct way to request [[Project:Staff#Bureaucrat|bureaucrat]] rights. The current wiki bureaucrats will talk amongst themselves and decide which administrator(s) they think would be a good fit for bureaucrat, and they will then hold a vote on the [[GDW:CN|community noticeboard]] for 14 days, allowing the community to vote on whether or not said user should be a bureaucrat. If the community consensus thinks that said admin should become a bureaucrat, they will be promoted.
=== Administrator ===
In order for a user to become an administrator, they must be a well established, friendly, and trusted moderator or interface/forum administrator for a minimum of 60 days. The recommended minimum amount of edits for a user applying to become an administrator is 2,000.
=== Interface Administrator ===
In order for a user to become an interface administrator, they must be a well established, friendly, and responsible user with a minimum of 1,200 edits. Since the rights of an interface administrator could be misused to pose a security risk, this is exclusively given to well-trusted users who must show that they have experience with CSS, JavaScript, and/or JSON.
=== Moderator ===
In order for a user to become a moderator, they must be a well established, friendly, and responsible rollbacker with a minimum of 1,000 edits.
=== Forum Administrator ===
Currently, the [[Special:WikiForum|forums]] are disabled due to a security risk, but they will be reopened as soon as the problem is solved.
=== Rollbacker ===
In order for a user to become an rollbacker, they must be a well established, responsible, friendly, and active user with a minimum of 300 edits. A user is more likely to become a rollbacker if they have consistently reverted vandalism throughout their time on the wiki.
== Other user groups ==
=== Abusefilter editor ===
In order for a user to become an abusefilter editor, they must be a well established, responsible, friendly, and active user, with a minimum of 500 edits who has shown they that understand the proper syntax and regex of the [[Special:AbuseFilter|AbuseFilter]].
=== Autopatroll ===
In order for a user to become an autopatroller, they must have been a well established, responsible, friendly, and active user, with a minimum of 400 edits.
=== Bot ===
In order for a user to become a bot, they must list the following information in their request (which should be made by the bot operator, not the bot account):
* The username of the bot
* If it is semi or fully automated
* The ''exact'' scope and purpose of the bot
* What software it uses, or how it acts as a bot
If a user would like to apply for a temporary bot flag on one of their accounts, they may contact a bureaucrat on their talk page, following the process as listed above.
=== Confirmed ===
There is no formal way to request promotion to the [[Project:Staff#Confirmed|confirmed]] user group. The two most common reasons somebody becomes confirmed is if they directly ask a bureaucrat for it and they oblige, or if an already (auto)confirmed user makes a secondary account and doesn't want to wait the four days to become autoconfirmed.
== Demotion ==
A user may be demoted or removed from a user group if they have shown to be inactive for 60 or more days, have abused their rights, have broken the wiki rules, or have done something similar.
A user may demote themselves at any time, but they should leave a notice at the [[GDW:CN|community noticeboard]] when they retire.
== Request user rights ==
Visit [[Project:Requests for user rights|this page]] if you would like to request user rights.
4d63319157e33d778419bffbfbec8b00609e319e
GDW:CN
0
178
493
2023-03-09T02:46:15Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Community noticeboard]]
wikitext
text/x-wiki
#REDIRECT [[Project:Community noticeboard]]
0e319714ae839055f7342ff921ed116cc9f073bd
494
493
2023-03-09T02:46:23Z
BlindCartographer
2
Protected "[[GDW:CN]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Community noticeboard]]
0e319714ae839055f7342ff921ed116cc9f073bd
MediaWiki:Edittools
8
179
496
2023-03-12T21:27:21Z
BlindCartographer
2
Created page with "<!-- Text here will be shown below edit and upload forms. --> <div class="plainlinks" style="margin-top:5px;margin-bottom:5px;border-width:1px;border-style:solid;border-color:#aaa;padding:2px;font-size:x-small"> '''Shortcuts''': <charinsert>| [+] [[+]] {{+}} <nowiki><br></nowiki> <+> <<+>> – —</charinsert> · <charinsert><!--+--> <s>+</s></charinsert> · <charinsert>#REDIRECT [[+]]</charinsert> · <charinsert>[[Category:+]]</charinsert> · <charinsert><nowiki><y..."
wikitext
text/x-wiki
<!-- Text here will be shown below edit and upload forms. -->
<div class="plainlinks" style="margin-top:5px;margin-bottom:5px;border-width:1px;border-style:solid;border-color:#aaa;padding:2px;font-size:x-small">
'''Shortcuts''':
<charinsert>| [+] [[+]] {{+}} <nowiki><br></nowiki> <+> <<+>> – —</charinsert> ·
<charinsert><!--+--> <s>+</s></charinsert> ·
<charinsert>#REDIRECT [[+]]</charinsert> ·
<charinsert>[[Category:+]]</charinsert> ·
<charinsert><nowiki><youtube>+</youtube></nowiki></charinsert> ·
<charinsert><ref>+</ref></charinsert> ·
<charinsert><big>+</big></charinsert> ·
<charinsert><small>+</small></charinsert> ·
<charinsert><references/></charinsert> ·
<charinsert><nowiki><div class="references-small">+</div></nowiki></charinsert> ·
<charinsert>‚+‘ „+“ ‘+’ “+”</charinsert> ·
<charinsert> # * ± + - ÷ × ≤ ≥ ≠ ≈ ~ ° / \ & § ¶ ¡ ¿ † ‡ ↔ → ← ↑ ↓ •</charinsert> ·
<charinsert>⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞</charinsert><br>
'''Template codes'''<br>
''Doesn't show up in the template itself:'' <charinsert><includeonly>+</includeonly></charinsert><br>
''Isn't take to the page:'' <charinsert><noinclude>+</noinclude></charinsert><br>
''The only thing taken to the page:'' <charinsert><onlyinclude>+</onlyinclude></charinsert><br>
af04fa4f75f5d8bf6f96b063ec9d340aa57e5adb
498
496
2023-03-12T21:29:26Z
BlindCartographer
2
wikitext
text/x-wiki
<!-- Text here will be shown below edit and upload forms. -->
<div class="plainlinks" style="margin-top:5px;margin-bottom:5px;border-width:1px;border-style:solid;border-color:#aaa;padding:2px;font-size:x-small">
'''Shortcuts''':
<charinsert>| [+] [[+]] {{+}} <nowiki><br></nowiki> <+> <<+>> – —</charinsert> ·
<charinsert><!--+--> <s>+</s></charinsert> ·
<charinsert>#REDIRECT [[+]]</charinsert> ·
<charinsert>[[Category:+]]</charinsert> ·
<charinsert><ref>+</ref></charinsert> ·
<charinsert><big>+</big></charinsert> ·
<charinsert><small>+</small></charinsert> ·
<charinsert><references/></charinsert> ·
<charinsert><nowiki><div class="references-small">+</div></nowiki></charinsert> ·
<charinsert>‚+‘ „+“ ‘+’ “+”</charinsert> ·
<charinsert> # * ± + - ÷ × ≤ ≥ ≠ ≈ ~ ° / \ & § ¶ ¡ ¿ † ‡ ↔ → ← ↑ ↓ •</charinsert> ·
<charinsert>⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞</charinsert><br>
'''Template codes'''<br>
''Doesn't show up in the template itself:'' <charinsert><includeonly>+</includeonly></charinsert><br>
''Isn't taken to the page:'' <charinsert><noinclude>+</noinclude></charinsert><br>
''The only thing taken to the page:'' <charinsert><onlyinclude>+</onlyinclude></charinsert><br>
a2ae1bfb735607971e2ff72aa9c27dd2dd444f8d
Game Development Wiki:Editing manual/Voting guide
4
180
499
2023-03-12T21:47:24Z
BlindCartographer
2
Created page with "{{Policy page}} Here on the [[GDW:ABT|{{SITENAME}}]], we will often hold voting processes concerning a variety of topics, mostly either requests or changes to the wiki. This article details how to properly participate in wiki votes. == General Guidelines == # Follow our [[GDW:P|policies]]. # You only vote once on any given election. # Treat all users with courtesy. # Vote seriously and with the wiki in mind. # Do not use an alternative account to make an additional vot..."
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|{{SITENAME}}]], we will often hold voting processes concerning a variety of topics, mostly either requests or changes to the wiki. This article details how to properly participate in wiki votes.
== General Guidelines ==
# Follow our [[GDW:P|policies]].
# You only vote once on any given election.
# Treat all users with courtesy.
# Vote seriously and with the wiki in mind.
# Do not use an alternative account to make an additional vote.
# Do not attempt to forcibly sway another users vote or opinion and do not edit others votes.
== For Voters ==
=== Voting ===
In the designated voting section for what kind of vote you want to give (support, neutral, oppose), you should use the following methods to vote:
=== Asking Questions ===
== For Staff ==
7b075d2796bdf7e450fad83eca2c92cf9366d918
500
499
2023-03-12T21:47:38Z
BlindCartographer
2
Protected "[[Game Development Wiki:Editing manual/Voting guide]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
Here on the [[GDW:ABT|{{SITENAME}}]], we will often hold voting processes concerning a variety of topics, mostly either requests or changes to the wiki. This article details how to properly participate in wiki votes.
== General Guidelines ==
# Follow our [[GDW:P|policies]].
# You only vote once on any given election.
# Treat all users with courtesy.
# Vote seriously and with the wiki in mind.
# Do not use an alternative account to make an additional vote.
# Do not attempt to forcibly sway another users vote or opinion and do not edit others votes.
== For Voters ==
=== Voting ===
In the designated voting section for what kind of vote you want to give (support, neutral, oppose), you should use the following methods to vote:
=== Asking Questions ===
== For Staff ==
7b075d2796bdf7e450fad83eca2c92cf9366d918
Game Development Wiki:Requests for user rights/boilerplate
4
181
503
2023-03-12T22:23:15Z
BlindCartographer
2
Created page with "== {{{user}}}'s Request for the {{{rights}}} == <div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa"> User: [[User:{{{user}}}|{{{user}}}]] === Reason(s) for request === {{{reason}}} === Additional comments given by user (if any) === {{{comments|}}} === Questions for requester === === Comments by other users === === Support === === Neutral === === Oppose === </div>"
wikitext
text/x-wiki
== {{{user}}}'s Request for the {{{rights}}} ==
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
</div>
0440a32e06a605b1d63523404702652463cccadc
504
503
2023-03-12T22:23:33Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for user rights/boilerplate]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
== {{{user}}}'s Request for the {{{rights}}} ==
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
</div>
0440a32e06a605b1d63523404702652463cccadc
505
504
2023-03-12T22:24:35Z
BlindCartographer
2
wikitext
text/x-wiki
== {{{user}}}'s Request for {{{rights}}} ==
<div class="boilerplate metadata discussion-archived" style="background-color: #F2F4FC; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #aaa">
User: [[User:{{{user}}}|{{{user}}}]]
=== Reason(s) for request ===
{{{reason}}}
=== Additional comments given by user (if any) ===
{{{comments|}}}
=== Questions for requester ===
=== Comments by other users ===
=== Support ===
=== Neutral ===
=== Oppose ===
</div>
d4cf1a337b7c513fe0efb58edbbab34caf5085e9
Game Development Wiki:Requests for user rights/preload
4
182
506
2023-03-12T22:24:40Z
BlindCartographer
2
Created page with "__NOTOC__ {{<includeonly>SUBST:</includeonly>:Project:Requests for user rights/boilerplate |user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line --> |reason= <!-- Replace this section with the reason you are requesting to be promoted to a user group. Please be thorough in this section and be sure to give any reasons as to why it would be useful. --> |rights= <!-- The name of the user group you want added --> |comments= <!-- Replace this secti..."
wikitext
text/x-wiki
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for user rights/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting to be promoted to a user group. Please be thorough in this section and be sure to give any reasons as to why it would be useful. -->
|rights= <!-- The name of the user group you want added -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
ac6692bf3a2a51f897348b54ee0a92c2d5b62737
507
506
2023-03-12T22:24:52Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for user rights/preload]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for user rights/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting to be promoted to a user group. Please be thorough in this section and be sure to give any reasons as to why it would be useful. -->
|rights= <!-- The name of the user group you want added -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
ac6692bf3a2a51f897348b54ee0a92c2d5b62737
509
507
2023-03-12T22:27:21Z
BlindCartographer
2
wikitext
text/x-wiki
__NOTOC__
{{<includeonly>SUBST:</includeonly>:Project:Requests for user rights/boilerplate
|user={{<includeonly>SUBST:</includeonly>REVISIONUSER}} <!-- Do not edit this line -->
|reason= <!-- Replace this section with the reason you are requesting to be promoted to a user group. Please be thorough in this section and be sure to give any reasons as to why it would be useful for the wiki and any other experience you have. -->
|rights= <!-- The name of the user group you want added to -->
|comments= <!-- Replace this section with any additional comments you have for us. -->
}}
da078586401da47be7ad4c7f284a5d1734091d89
Game Development Wiki:Requests for undeletion
4
183
512
2023-03-12T22:33:35Z
BlindCartographer
2
Created page with "{{/header}}"
wikitext
text/x-wiki
{{/header}}
ec2273490688a6ecc2324834b3acba6cd0497c48
Game Development Wiki:Policy/Deletion policy
4
132
514
364
2023-03-12T22:39:05Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox warning.png|50px|right|link=]]
When a page is not needed, doesn't fit the goal of the wiki, or is was created in bad-faith, it may be '''deleted'''. If a page was deleted, it had a good reason to be deleted.
== Why delete a page? ==
If a page is deleted, it may have had several reasons why it was deleted. Some reasons may be but are not limited to:
*Vandalism and/or spam.
*Unnecessarily bringing back a deleted page.
*Off-topic or unfitting.
*Duplicate of another page.
*Heavily violates the [[GDW:EM|editing manual]].
*Violates any of the [[GDW:P|policies]].
Make sure that before deleting any page, you check what links there and the history of the page.
== Who can delete a page? ==
Only users who have [[Project:Moderation|moderator]] or [[Project:Administrators|administrator]] rights can delete or restore a page, but any user can mark a page for deletion with the {{Tlx|Delete}} or {{Tlx|Speedy delete}} template.
== Restoring a page ==
If an administrator or moderator believes there has been an error in the deletion of a page, they may choose to restore it. A user may also visit [[Project:Requests for undeletion|here]] and request a page be restored.
== Other policies ==
* [[Project:Policy|Main policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
807ba0530c64b8a5f1be6135da3455e9d8493b45
Game Development Wiki:Requests for undeletion/header
4
184
515
2023-03-12T22:43:03Z
BlindCartographer
2
Created page with "{{Nbox |header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon restore.svg|34px|link=]] Requests for undeletion</span> ---- |text=On this page, users may request that an article or page be restored after deletion. Before requesting undeletion read [[Project:Policy/Deletion policy|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting. <br> <br> Notes: * You are only allowed to vote once in a given request. * The page must h..."
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon restore.svg|34px|link=]] Requests for undeletion</span>
----
|text=On this page, users may request that an article or page be restored after deletion. Before requesting undeletion read [[Project:Policy/Deletion policy|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allowed to vote once in a given request.
* The page must have been deleted within the last 30 days.
* After leaving a request, please notify the community on the [[GDW:CN|community noitceboard]] that you have made a new request.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user undeletion
preload = Project:Requests for undeletion/preload
buttonlabel = Add request
</inputbox>
</div>
}}
a3d489e50fa4be633684bc96948cabff4b50ed34
516
515
2023-03-12T22:43:30Z
BlindCartographer
2
Protected "[[Game Development Wiki:Requests for undeletion/header]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon restore.svg|34px|link=]] Requests for undeletion</span>
----
|text=On this page, users may request that an article or page be restored after deletion. Before requesting undeletion read [[Project:Policy/Deletion policy|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* You are only allowed to vote once in a given request.
* The page must have been deleted within the last 30 days.
* After leaving a request, please notify the community on the [[GDW:CN|community noitceboard]] that you have made a new request.
* Read [[Game_Development_Wiki:Editing_manual/Voting_guide|the voting guide]] if you have not, as your vote will have to follow the guidelines, or else it will be removed.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user undeletion
preload = Project:Requests for undeletion/preload
buttonlabel = Add request
</inputbox>
</div>
}}
a3d489e50fa4be633684bc96948cabff4b50ed34
Template:Translation needed
10
185
517
2023-03-12T22:55:08Z
BlindCartographer
2
Created page with "{{Ambox | type = content | image = [[File:Ambox globe content.svg|45px|link=]] | text = <center>'''This article contains content that requires an english translation.'''</center> This article contains information or content that is in another language and requires an english translation. Please [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this article] in order to provide an english translation, but do not feel the need to remove the information in another language..."
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox globe content.svg|45px|link=]]
| text = <center>'''This article contains content that requires an english translation.'''</center>
This article contains information or content that is in another language and requires an english translation. Please [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this article] in order to provide an english translation, but do not feel the need to remove the information in another language.
}}
<includeonly>[[Category:Candidates for cleanup]]</includeonly>
<noinclude>{{Documentation}}</noinclude>
8ccee69275d24c176021e26c8033ec07117f6fb1
User:BlindCartographer/sandbox
2
71
520
220
2023-03-12T23:26:59Z
BlindCartographer
2
wikitext
text/x-wiki
{{User sandbox}}
d3c6c3118f4de6acb123f1044a362fecdbac12c6
Category:User sandboxes
14
186
521
2023-03-12T23:27:18Z
BlindCartographer
2
Created page with "The list of user sandboxes on the wiki."
wikitext
text/x-wiki
The list of user sandboxes on the wiki.
b6dd2746185b100665b141d3c882aebc57e4b88b
Template:Shortcut
10
190
525
2023-03-19T16:51:24Z
BlindCartographer
2
Created page with "<includeonly>{{#invoke:Shortcut|main}}</includeonly><noinclude> {{Documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Shortcut|main}}</includeonly><noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
82cd3504cdb8a8e29aa449db737a5a5f59ae8343
526
525
2023-03-19T16:51:38Z
BlindCartographer
2
Protected "[[Template:Shortcut]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<includeonly>{{#invoke:Shortcut|main}}</includeonly><noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
82cd3504cdb8a8e29aa449db737a5a5f59ae8343
528
526
2023-03-19T17:07:25Z
BlindCartographer
2
wikitext
text/x-wiki
{| style="margin: 5px; float: right; background-color: #F8F9FA; border: 1px solid #AAAAAA; padding: 2px; width: 6%;"
| style="text-align: center;"|<u><small>Shortcuts</small></u>
|- valign="middle"
| style="text-align: center;"|{{{1}}}
|}
<noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
f8e2ae765c32bab222c27a97bb8250d1539cf5aa
Module:Redirect
828
191
529
2023-03-19T17:11:27Z
BlindCartographer
2
Created page with "-- This module provides functions for getting the target of a redirect page. local p = {} -- Gets a mw.title object, using pcall to avoid generating script errors if we -- are over the expensive function count limit (among other possible causes). local function getTitle(...) local success, titleObj = pcall(mw.title.new, ...) if success then return titleObj else return nil end end -- Gets the name of a page that a redirect leads to, or nil if it isn't a -- redi..."
Scribunto
text/plain
-- This module provides functions for getting the target of a redirect page.
local p = {}
-- Gets a mw.title object, using pcall to avoid generating script errors if we
-- are over the expensive function count limit (among other possible causes).
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
if success then
return titleObj
else
return nil
end
end
-- Gets the name of a page that a redirect leads to, or nil if it isn't a
-- redirect.
function p.getTargetFromText(text)
local target = string.match(
text,
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]"
) or string.match(
text,
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]"
)
return target and mw.uri.decode(target, 'PATH')
end
-- Gets the target of a redirect. If the page specified is not a redirect,
-- returns nil.
function p.getTarget(page, fulltext)
-- Get the title object. Both page names and title objects are allowed
-- as input.
local titleObj
if type(page) == 'string' or type(page) == 'number' then
titleObj = getTitle(page)
elseif type(page) == 'table' and type(page.getContent) == 'function' then
titleObj = page
else
error(string.format(
"bad argument #1 to 'getTarget'"
.. " (string, number, or title object expected, got %s)",
type(page)
), 2)
end
if not titleObj then
return nil
end
local targetTitle = titleObj.redirectTarget
if targetTitle then
if fulltext then
return targetTitle.fullText
else
return targetTitle.prefixedText
end
else
return nil
end
end
--[[
-- Given a single page name determines what page it redirects to and returns the
-- target page name, or the passed page name when not a redirect. The passed
-- page name can be given as plain text or as a page link.
--
-- Returns page name as plain text, or when the bracket parameter is given, as a
-- page link. Returns an error message when page does not exist or the redirect
-- target cannot be determined for some reason.
--]]
function p.luaMain(rname, bracket, fulltext)
if type(rname) ~= "string" or not rname:find("%S") then
return nil
end
bracket = bracket and "[[%s]]" or "%s"
rname = rname:match("%[%[(.+)%]%]") or rname
local target = p.getTarget(rname, fulltext)
local ret = target or rname
ret = getTitle(ret)
if ret then
if fulltext then
ret = ret.fullText
else
ret = ret.prefixedText
end
return bracket:format(ret)
else
return nil
end
end
-- Provides access to the luaMain function from wikitext.
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
return p.luaMain(args[1], args.bracket, args.fulltext) or ''
end
-- Returns true if the specified page is a redirect, and false otherwise.
function p.luaIsRedirect(page)
local titleObj = getTitle(page)
if not titleObj then
return false
end
if titleObj.isRedirect then
return true
else
return false
end
end
-- Provides access to the luaIsRedirect function from wikitext, returning 'yes'
-- if the specified page is a redirect, and the blank string otherwise.
function p.isRedirect(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
if p.luaIsRedirect(args[1]) then
return 'yes'
else
return ''
end
end
return p
a224c45940343d66f49a78b0a39b2045e2c45d20
Template:No redirect
10
192
530
2023-03-19T17:13:26Z
BlindCartographer
2
Created page with "{{safesubst:<noinclude/>#if: {{safesubst:<noinclude/>#invoke:Redirect|isRedirect|{{{1}}}}} | <span class="plainlinks">[{{safesubst:<noinclude/>fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]</span> | {{safesubst:<noinclude/>#if:{{{2|}}}|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}]]}} }}<noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
{{safesubst:<noinclude/>#if: {{safesubst:<noinclude/>#invoke:Redirect|isRedirect|{{{1}}}}}
| <span class="plainlinks">[{{safesubst:<noinclude/>fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]</span>
| {{safesubst:<noinclude/>#if:{{{2|}}}|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}]]}}
}}<noinclude>
{{Documentation}}
</noinclude>
d7583fd4c1a163bd421188515e21b594c89b005d
531
530
2023-03-19T17:13:38Z
BlindCartographer
2
Protected "[[Template:No redirect]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{safesubst:<noinclude/>#if: {{safesubst:<noinclude/>#invoke:Redirect|isRedirect|{{{1}}}}}
| <span class="plainlinks">[{{safesubst:<noinclude/>fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]</span>
| {{safesubst:<noinclude/>#if:{{{2|}}}|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}]]}}
}}<noinclude>
{{Documentation}}
</noinclude>
d7583fd4c1a163bd421188515e21b594c89b005d
Game Development Wiki:Policy
4
44
532
353
2023-03-19T17:16:46Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
{{Shortcut
|{{No redirect|GDW:P|GDW:P}}
}}
There are certain '''rules''' and '''policies''' that every user, both registered and non-registered, must follow. Noncompliance with the rules will result in the appropriate actions being taken by [[GDW:Staff|wiki staff]], which may be as minor as an edit reversion or as major as an indefinite ban. If a rule seems unclear, please ask a current member of the [[Project:Staff|wiki staff]] for clarification. Rules concerning edit/page quality can be found [[Project:Editing manual|here]].
== General Rules ==
===Rule Zero===
Nobody is above the rules. All users, whether staff or not, are subject to punishment if necessary. There should be absolutely no favoritism, and attempting to find loopholes in the rules will not let you avoid punishment.
===Vandalism===
Vandalism or any sort of disruptive edits is strictly prohibited. The deliberate act of removing or destroying content on the wiki as well as purposefully spreading false or nonsensical information will not be tolerated. This applies to all articles and images. Acts of vandalism are always done maliciously; making an unhelpful edit by mistake cannot be considered vandalism. Vandalistic edits will be reverted and result in a warning and a block following afterwards if it continues.
===Wiki Content===
The wiki is primarily meant for the documentation of game development and anything related to it. Incredibly short pages will be deleted after 24 hours if it does not eventually get over 1,200 bytes. Rule breaking content will be removed. The first few offense will result in a warning. Further offenses or multiple offenses done in a short period of time will be counted as vandalism, resulting in either a lengthy or indefinite block. Adding explicitly NSFW or NSFL content will result in an immediate block.
The wiki does not cover individual games.
===Copyright Violations===
Adding articles or files about websites that violate copyright or violating copyright in any way is unacceptable. Any and all forms of copyright violation will be removed. Any form of intentional copyright violations will result in an indefinite block.
===Page Creation===
You can create any page you want, as long as it is relevant to the wikis overarching topic. Do not create irrelevant or spam pages, as that will result in immediate action. Make sure all pages at least mildly follow the [[Project:Editing manual|Editing manual]]. Please make a page on your [[Special:MyPage/Sandbox|Sandbox]] page before making it an article. Rule breaking content will be removed. Varying amounts of warnings and blocks may be handed out depending on the situation.
===Sockpuppetry===
The general rule is one editor, one account. Do not use multiple accounts to mislead, deceive, vandalize or disrupt; to create the illusion of greater support for a position; to stir up controversy; or to circumvent a block, ban, or sanction. Do not ask your family or friends to create accounts to support you. Do not revive old unused accounts and use them as different users, or use another person's account. Normal alts are fine, but don't use them maliciously. Upon being found out, an indefinite block will be put in place for the sockpuppet account, and the main account will have its block lengthened greatly.
===Spamming Edits/Edit Farming===
Do not spam edits. This behavior is disruptive and clutters an article's history. This can range from writing the same thing over and over across an article to adding several unnecessary links to making several edits that consist of adding something then quickly undoing it. Creating pages over and over is also considered spam. Spamming in an article is generally seen as vandalism. Any form of spam is forbidden. Edits will be reverted. Offending users will be warned and may be blocked if they continue.
===Edit Wars===
An edit war is where two users undo each of their edits in one page due to a disagreement between each other. If you are in a situation where you are edit warring with someone, please message them on their message wall. Explain your reasoning as to why your edit should be published with research to back-up your reasoning. If the edit war continues after discussing, please contact an admin or content moderators. If you are the user with incorrect information, or your edits were not published, please do not harass or get frustrated with the people that were involved. Pages subject to edit warring will be temporarily locked, and users will be warned. Users continuing afterwards may be blocked.
===Behavior & Civility===
All contributors are expected to act civil and courteous towards other users. If there is a dispute, try and work it out peacefully with the other user, or just back away. Trolling is also not allowed, and will result in a punishment if it does not stop. Offending users will be warned. Users continuing after the warning(s) will be blocked.
===Spamming===
Do not spam. This behavior is annoying and can clutter a discussion. This can range from copypastas to needlessly long breaks to writing in a very distracting font. Making the same or very similar comments multiple times is also considered spam. Encouraging users to spam is also forbidden. Offending users will be warned. Users continuing after the warning will be blocked.
===Usernames===
Any username that is explicit, rude, inappropriate, derogatory, or in any way inappropriate will result in the account under the inappropriate username being permanently blocked. Usernames that advertise groups are also not allowed, nor are usernames that impersonate another user, a group, or well-known famous person. The user is allowed to make another account under a different and more appropriate name, however.
== Blocking ==
<small>A more in-depth blocking policy can be found [[Project:Policy/Blocking policy|here]]</small>
<br>
Blocks can be assigned to users by [[Project:Administrators|administrators]] when the situation calls for it. Certain blocks may mildly deviate from the general length for any given reason, albeit rarely. The third block given to any user for any reason will be '''indefinite'''.
=== Appeals ===
If you believe your block was unfair, a mistake, or generally contestable, you may do the following:
*If you still have access to edit your talk page, you may leave an unblock request on there to be reviewed by an administrator. You can do so by adding <code><nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki></code> and replacing (insert reason here) with your reason.
Only the blocked user can appeal their block, no third party may do so for another user.
== Other Policies ==
* [[Project:Policy/Blocking policy|Blocking policy]]
* [[Project:Policy/Protection policy|Protection policy]]
* [[Project:Policy/Deletion policy|Deletion policy]]
* [[Project:Policy/Merge policy|Merge policy]]
[[Category:{{SITENAME}}]]
32f01e186b472c033db5ad2249578a0233494698
Game Development Wiki:Frequently Asked Questions
4
193
533
2023-03-19T17:33:06Z
BlindCartographer
2
Created page with "<tabs> <tab name="General> {{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}} }} === What is this place? === This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]]. === How can I join? === In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've do..."
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
</tab>
<tab name="Editing">
</tab>
<tab name="Staff">
</tab>
<tab name="Other">
</tab>
</tabs>
[[Category:{{SITENAME}}]]
28f7d8ac7a18eb51da4429235b7d3215d128e1f7
538
533
2023-03-19T19:12:52Z
BlindCartographer
2
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.}}
</tab>
<tab name="Editing">
</tab>
<tab name="Staff">
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
03a9e5c049e0839c238426883b65ecadfacb48fb
539
538
2023-03-19T19:13:13Z
BlindCartographer
2
Protected "[[Game Development Wiki:Frequently Asked Questions]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.}}
</tab>
<tab name="Editing">
</tab>
<tab name="Staff">
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
03a9e5c049e0839c238426883b65ecadfacb48fb
544
539
2023-03-19T20:07:42Z
BlindCartographer
2
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.
</tab>
<tab name="Editing">
</tab>
<tab name="Staff">
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
=== Do you have non-english versions of the wiki? ===
At the moment, the only version of the {{SITENAME}} is in english.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
7fbcfbe1d116651c03e9d3ffa41f05aa1282e31d
545
544
2023-03-19T20:24:21Z
BlindCartographer
2
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
This is the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.
</tab>
<tab name="Editing">
=== How do I start editing? ===
In order to edit a page, you can click the "Edit" or "Edit source" buttons in the top right corner next to the search bar in order to begin editing a page. Please read the [[GDW:EM|editing manual]] and [[GDW:P|policies]] before you begin editing.
</tab>
<tab name="Staff">
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
=== Do you have non-english versions of the wiki? ===
At the moment, the only version of the {{SITENAME}} is in english.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
c46ca1a8b5e9cb894a10ce2a928f303441e398d7
556
545
2023-03-19T23:27:14Z
BlindCartographer
2
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
Welcome to the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.
</tab>
<tab name="Editing">
=== How do I start editing? ===
In order to edit a page, you can click the "Edit" or "Edit source" buttons in the top right corner next to the search bar in order to begin editing a page. Please read the [[GDW:EM|editing manual]] and [[GDW:P|policies]] before you begin editing.
=== Can I create an article? ===
Sure! Anybody can. Just make sure you create it in your [[Special:MyPage/sandbox|user sandbox]] before posting it to the wiki. If it gets deleted, do not repost it. Instead, visit [[Project:Requests for undeletion|here]] instead.
</tab>
<tab name="Staff">
=== Where can I find the wiki staff? ===
You can find the list of wiki staff [[Project:Staff|here]].
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
=== Do you have non-english versions of the wiki? ===
At the moment, the only version of the {{SITENAME}} is in english.
=== I have found something that violates the copyright policy ===
If you have found content on the wiki that violates the CC BY-SA 4.0 license or the [[Project:Copyrights|wiki copyright policy]], please report it to a [[Project:Moderation|moderator]], [[Project:Administrators|administrator]], or a [[Project:Staff#Bureaucrat|bureaucrat]] on their talk page. Make sure to do so by using the {{Tlx|Copyright takedown}} template.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
dea34fd66f7ff6b261707e10da158914e86e4cc9
GDW:FAQ
0
194
534
2023-03-19T17:33:45Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Frequently Asked Questions]]
wikitext
text/x-wiki
#REDIRECT [[Project:Frequently Asked Questions]]
dc919017a2d87f65f101ddf006bd7df7ab0051b2
535
534
2023-03-19T17:33:54Z
BlindCartographer
2
Protected "[[GDW:FAQ]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Frequently Asked Questions]]
dc919017a2d87f65f101ddf006bd7df7ab0051b2
MediaWiki:Sidebar
8
25
536
479
2023-03-19T17:34:57Z
BlindCartographer
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** Special:CreatePage|Create a Page
** randompage-url|randompage
** helppage|help-mediawiki
* Gamedev Wiki
** Game Development Wiki:Policy|Policies
** Game Development Wiki:Editing manual|Editing manual
** Special:WikiForum|Forums
** Special:AllPages|All pages
** Game Development Wiki:Staff|Wiki staff
** Project:Community noticeboard|Community noticeboard
** Project:Administrator Noticeboard|Administrator noticeboard
** Project:Community portal|Community portal
** Project:Frequently Asked Questions|FAQs
* SEARCH
* TOOLBOX
* LANGUAGES
1371e1ebc5fe637627b3c75353bffe78378f9581
Tutorial:Installing Godot
3000
98
537
264
2023-03-19T17:48:02Z
BlindCartographer
2
wikitext
text/x-wiki
{{Tutorial page|status=approved}}
[[Godot]] is an open-source, lightweight, and cross-platform game engine that allows the user to create and develop 2D and 3D video games. This article is a guide on how to '''install Godot''' and the most recent release of it. This tutorial can also be used for updating Godot.
== Downloading Godot ==
# Visit [https://godotengine.org/ godotengine.org].
# Go to [https://godotengine.org/download godotengine.org/download] and download the latest version. It should automatically navigate to the version for your Operating System.
# Extract the .zip file and run Godot. It is self-contained and should not require and compiling.
== Updating Godot ==
[[File:godotimport.png|200px|thumb|right|The import button on Godot]]
# Follow the instructions above for [[Tutorial:Installing Godot#Downloading Godot|downloading Godot]].
# Do not delete any existing files or directories for any games you have developed on Godot.
# Open Godot and click the "Import" button, and import the directory containing the files for your game(s) that were on the previous edition of Godot.
== Notes ==
* Godot does not need to be compiled, only extracted from the .zip file. It can then be run directly afterwards.
== See also ==
[[Category:Godot tutorials]]
[[Category:Installation tutorials]]
826069b18527fc6af22d8615c02d75a243c5d21d
MediaWiki:Newarticletext
8
69
540
162
2023-03-19T19:22:42Z
BlindCartographer
2
wikitext
text/x-wiki
<div style="text-align: center; border: 2px solid green; padding: 10px; font-size: 125%;">[[File:Essay.png|45px|link=Special:MyPage/Sandbox]] Please make sure your page was created in your '''[[Special:MyPage/sandbox|sandbox]]''' page before doing so here. Thank you!</div>
144d7bc017862616167a3986a00e9bd38d1e6fb6
Template:User sandbox
10
72
541
384
2023-03-19T19:23:14Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|text = <center>'''This is a sandbox page.'''</center>
This page is a personal user sandbox, which means it is used by the respective owner to test and practice editing and formatting. It is not an article, but may be used to practice article creation.
----
<small>(If you want to visit your own sandbox, click [[Special:MyPage/sandbox|here]].)</small>
|image = [[File:Sandbox.png|45px|link=Category:User sandboxes]]
|imagelink = Category:User sandboxes
}}
<includeonly>[[Category:User sandboxes]]</includeonly>
<noinclude>[[Category:User management templates]]</noinclude>
037e7b717eb9345bdc3dc9e7d7386f0d12485909
Category:Tutorials
14
195
542
2023-03-19T19:26:00Z
BlindCartographer
2
Created page with "The comprehensive list of all [[Project:Tutorial articles|tutorial articles]] on the {{SITENAME}}."
wikitext
text/x-wiki
The comprehensive list of all [[Project:Tutorial articles|tutorial articles]] on the {{SITENAME}}.
fdb495b3cbd2d729980ef1e4a9752cee6932d576
Category:Approved tutorials
14
196
543
2023-03-19T19:27:11Z
BlindCartographer
2
Created page with "The comprehensive list of all [[Project:Tutorial articles|tutorial articles]] on the Game Development Wiki."
wikitext
text/x-wiki
The comprehensive list of all [[Project:Tutorial articles|tutorial articles]] on the Game Development Wiki.
77fc8c07dbddc79000144a7523afe390aa60f616
Template:MP-Main
10
38
546
77
2023-03-19T21:08:10Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|border=#2C670F
|background=#F8FFF5
|header=<div style="font-size:180%; font-family: Righteous">'''Welcome to the Game Development Wiki!'''</div>
|text=The '''Game Development Wiki''' (better known as the '''Gamedev wiki''') is a collaborative encyclopedia used to store and collect knowledge about the past, present, and future of game development. Even you can contribute to it.
Before starting, please read the [[GDW:P|Rules]] and [[GDW:EM|Editing Manual]]. Thank you!
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Project:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
''We are NOT a source of advertisement, promotion, or anything of the sort. We are a wiki, a place to store information. We do not accept low-quality articles or posts that exist solely to advertise.''
<div style="text-align:right;">[[Special:CreatePage|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Create an article</span>]] [[Special:Random|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Random page</span>]]</div>
}}
f664d1894da3b4192fcf1823df46a195957868aa
Template:Copyright takedown
10
197
547
2023-03-19T22:52:27Z
BlindCartographer
2
Created page with "{{Ombox |type=delete |image=[[File:Copyright red.svg|left|50px|link=Project:Copyrights]] |text=<center>'''[[User:{{REVISIONUSER}}|{{REVISIONUSER}}]] has found a copyright violation.'''</center> {{REVISIONUSER}} believes that '''{{{1|violating content}}}''' is in violation of the wiki [[Project:Copyrights|copyright policy]] and/or British copyright law. They are filing this takedown notice for the following reason(s): {{{2|Insert reason for takedown here.}}} }} <noinclu..."
wikitext
text/x-wiki
{{Ombox
|type=delete
|image=[[File:Copyright red.svg|left|50px|link=Project:Copyrights]]
|text=<center>'''[[User:{{REVISIONUSER}}|{{REVISIONUSER}}]] has found a copyright violation.'''</center>
{{REVISIONUSER}} believes that '''{{{1|violating content}}}''' is in violation of the wiki [[Project:Copyrights|copyright policy]] and/or British copyright law. They are filing this takedown notice for the following reason(s):
{{{2|Insert reason for takedown here.}}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:User talk templates]]
</noinclude>
81a942cbd5601189bc85276b30435834b42c1a43
548
547
2023-03-19T22:54:10Z
BlindCartographer
2
Protected "[[Template:Copyright takedown]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Ombox
|type=delete
|image=[[File:Copyright red.svg|left|50px|link=Project:Copyrights]]
|text=<center>'''[[User:{{REVISIONUSER}}|{{REVISIONUSER}}]] has found a copyright violation.'''</center>
{{REVISIONUSER}} believes that '''{{{1|violating content}}}''' is in violation of the wiki [[Project:Copyrights|copyright policy]] and/or British copyright law. They are filing this takedown notice for the following reason(s):
{{{2|Insert reason for takedown here.}}}
}}
<noinclude>
{{Documentation}}
[[Category:Templates]]
[[Category:User talk templates]]
</noinclude>
81a942cbd5601189bc85276b30435834b42c1a43
Template:Copyright page
10
198
549
2023-03-19T23:02:52Z
BlindCartographer
2
Created page with "{{Ombox |image=[[File:Ambox copyright blue.svg|45px|link=Project:Copyrights]] |text=<center>'''This {{{ns|page}}} concerns legal or [[Project:Copyrights|wiki copyright policies.]]'''</center> The content of this {{{ns|page}}} details and documents information relating to copyright laws and policies that are used on the {{SITENAME}}. Changes to the information pertaining to copyright proceedings should not be changed unless the policy or law changes. }} <noinclude>Cate..."
wikitext
text/x-wiki
{{Ombox
|image=[[File:Ambox copyright blue.svg|45px|link=Project:Copyrights]]
|text=<center>'''This {{{ns|page}}} concerns legal or [[Project:Copyrights|wiki copyright policies.]]'''</center>
The content of this {{{ns|page}}} details and documents information relating to copyright laws and policies that are used on the {{SITENAME}}. Changes to the information pertaining to copyright proceedings should not be changed unless the policy or law changes.
}}
<noinclude>[[Category:Templates]]</noinclude>
d540e47ab854c976976a673b3c83c636bff23597
550
549
2023-03-19T23:03:09Z
BlindCartographer
2
Protected "[[Template:Copyright page]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Ombox
|image=[[File:Ambox copyright blue.svg|45px|link=Project:Copyrights]]
|text=<center>'''This {{{ns|page}}} concerns legal or [[Project:Copyrights|wiki copyright policies.]]'''</center>
The content of this {{{ns|page}}} details and documents information relating to copyright laws and policies that are used on the {{SITENAME}}. Changes to the information pertaining to copyright proceedings should not be changed unless the policy or law changes.
}}
<noinclude>[[Category:Templates]]</noinclude>
d540e47ab854c976976a673b3c83c636bff23597
Game Development Wiki:Copyrights
4
123
551
333
2023-03-19T23:04:06Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
{{Copyright page}}
Content on the [[Main Page|Game Development Wiki]] is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted.
Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system.
f151a0a88988040aa1dee3b1dc82587bf278e659
552
551
2023-03-19T23:04:28Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
Content on the [[Main Page|Game Development Wiki]] is licensed under the Creative Commons Attribution-ShareAlike 4.0 License unless otherwise noted.
Files must abide by British copyright law. Fair use as such does not exist in the British system, it is instead replaced by a similar but stricter fair dealing system.
a75ccf2d4a2c286a459762a5c2f4fe61ffcca589
Template:Copyright takedown/doc
10
199
553
2023-03-19T23:19:14Z
BlindCartographer
2
Created page with "{{Copyright page|ns=template}} The '''copyright takedown''' template is to be used on [[Project:Staff|staff]] talk pages in order to file a copyright complaint or takedown. == Usage == In order to properly use the template, insert the following: <code><nowiki>{{Copyright takedown|(Insert violating content)|(insert reason) ~~~~}}</nowiki></code> An example is used below: <br> <code><nowiki>{{Copyright takedown|[[:File:Site-Icon.png|Site-Icon.png]]|This file is in viol..."
wikitext
text/x-wiki
{{Copyright page|ns=template}}
The '''copyright takedown''' template is to be used on [[Project:Staff|staff]] talk pages in order to file a copyright complaint or takedown.
== Usage ==
In order to properly use the template, insert the following:
<code><nowiki>{{Copyright takedown|(Insert violating content)|(insert reason) ~~~~}}</nowiki></code>
An example is used below: <br>
<code><nowiki>{{Copyright takedown|[[:File:Site-Icon.png|Site-Icon.png]]|This file is in violation of copyright law because the copyright holder did not give permission for it do be redistributed. ~~~~}}</nowiki></code>
Which results in the following:
{{Copyright takedown|[[:File:Site-Icon.png|Site-Icon.png]]|This file is in violation of copyright law because the copyright holder did not give permission for it do be redistributed. [[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]] · [[Special:Contributions/BlindCartographer|contribs]] · [[Special:Log/block/BlindCartographer|blocks]] · [[Special:Log/protect/BlindCartographer|protections]] · [[Special:Log/delete/BlindCartographer|deletions]] · [[Special:Log/move/BlindCartographer|page moves]] · [[Special:Log/rights/BlindCartographer|rights]]) 23:18, 19 March 2023 (UTC)}}
490c7747fcc123318d79c0d64670ce80bbd05137
554
553
2023-03-19T23:19:29Z
BlindCartographer
2
Protected "[[Template:Copyright takedown/doc]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Copyright page|ns=template}}
The '''copyright takedown''' template is to be used on [[Project:Staff|staff]] talk pages in order to file a copyright complaint or takedown.
== Usage ==
In order to properly use the template, insert the following:
<code><nowiki>{{Copyright takedown|(Insert violating content)|(insert reason) ~~~~}}</nowiki></code>
An example is used below: <br>
<code><nowiki>{{Copyright takedown|[[:File:Site-Icon.png|Site-Icon.png]]|This file is in violation of copyright law because the copyright holder did not give permission for it do be redistributed. ~~~~}}</nowiki></code>
Which results in the following:
{{Copyright takedown|[[:File:Site-Icon.png|Site-Icon.png]]|This file is in violation of copyright law because the copyright holder did not give permission for it do be redistributed. [[User:BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]] · [[Special:Contributions/BlindCartographer|contribs]] · [[Special:Log/block/BlindCartographer|blocks]] · [[Special:Log/protect/BlindCartographer|protections]] · [[Special:Log/delete/BlindCartographer|deletions]] · [[Special:Log/move/BlindCartographer|page moves]] · [[Special:Log/rights/BlindCartographer|rights]]) 23:18, 19 March 2023 (UTC)}}
490c7747fcc123318d79c0d64670ce80bbd05137
Game Development Wiki:Requests for undeletion/header
4
184
555
516
2023-03-19T23:25:23Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|header=<span style="font-size: 24px; font-weight: bold;">[[File:OOjs UI icon restore.svg|34px|link=]] Requests for undeletion</span>
----
|text=On this page, users may request that an article or page be restored after deletion. Before requesting undeletion read [[Project:Policy/Deletion policy|this]]. Remember to sign (using four tildes: <nowiki>~~~~</nowiki>) when posting.
<br>
<br>
Notes:
* User votes do not determine if a page gets restored, but may possibly sway the opinion of the staff member restoring the page.
* The page must have been deleted within the last 30 days.
* After leaving a request, please notify the community on the [[GDW:CN|community noitceboard]] that you have made a new request.
''To add your request, click the "Add request" button below.''
<div style="text-align: center;">
''To add your request, click the "Add request" button below.''
<inputbox>
type = commenttitle
hidden = true
break = no
page = Project:Requests for user undeletion
preload = Project:Requests for undeletion/preload
buttonlabel = Add request
</inputbox>
</div>
}}
dc5cd42669cd599fb7e7fa6cf502f7383f36a216
Module:Message box/imbox.css
828
200
557
2023-03-19T23:36:50Z
BlindCartographer
2
Created page with "/* {{pp|small=y}} */ .imbox { margin: 4px 0; border-collapse: collapse; border: 3px solid #36c; /* Default "notice" blue */ background-color: #fbfbfb; box-sizing: border-box; } /* For imboxes inside imbox-text cells. */ .imbox .mbox-text .imbox { margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */ /* TODO: Still needed? */ display: block; /* Fix for webkit to force 100% width. */ } .imbox-speedy { border: 3px solid #b32424; /* Red */ background-color..."
sanitized-css
text/css
/* {{pp|small=y}} */
.imbox {
margin: 4px 0;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
/* For imboxes inside imbox-text cells. */
.imbox .mbox-text .imbox {
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
/* TODO: Still needed? */
display: block; /* Fix for webkit to force 100% width. */
}
.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.imbox-delete {
border: 3px solid #b32424; /* Red */
}
.imbox-content {
border: 3px solid #f28500; /* Orange */
}
.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
.imbox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.imbox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.imbox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.imbox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.imbox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.imbox {
margin: 4px 10%;
}
}
1e82a3c342695a9b4fbdcc4e5e0930d4845a23d4
Template:Imbox
10
201
558
2023-03-19T23:37:28Z
BlindCartographer
2
Created page with "{{#invoke:Message box|imbox}}<noinclude> {{Documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Message box|imbox}}<noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
4c23c35e3bca07f4a859e7a560d3daf5d612886d
559
558
2023-03-19T23:37:39Z
BlindCartographer
2
Protected "[[Template:Imbox]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{#invoke:Message box|imbox}}<noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
4c23c35e3bca07f4a859e7a560d3daf5d612886d
Template:Attribution
10
202
560
2023-03-19T23:38:17Z
BlindCartographer
2
Created page with "{{Imbox | type = license | image = [[file:Commons-emblem-copyright.svg|40px|alt=|link=]] | text = ''The [[Project:Copyrights|copyright]] holder of this file allows anyone to use it for any purpose, provided that the copyright holder is properly attributed. Redistribution, derivative work, commercial use, and all other uses are permitted.'' }} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[file:Commons-emblem-copyright.svg|40px|alt=|link=]]
| text = ''The [[Project:Copyrights|copyright]] holder of this file allows anyone to use it for any purpose, provided that the copyright holder is properly attributed. Redistribution, derivative work, commercial use, and all other uses are permitted.''
}}
<noinclude>{{Documentation}}</noinclude>
eefc02f45b15fa4cc492f6b56cc3c9063fef45f0
561
560
2023-03-19T23:42:40Z
BlindCartographer
2
Protected "[[Template:Attribution]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[file:Commons-emblem-copyright.svg|40px|alt=|link=]]
| text = ''The [[Project:Copyrights|copyright]] holder of this file allows anyone to use it for any purpose, provided that the copyright holder is properly attributed. Redistribution, derivative work, commercial use, and all other uses are permitted.''
}}
<noinclude>{{Documentation}}</noinclude>
eefc02f45b15fa4cc492f6b56cc3c9063fef45f0
Template:Self
10
203
562
2023-03-19T23:44:24Z
BlindCartographer
2
Created page with "{{Imbox | type = license | image = [[file:Image-x-generic.svg|40px|alt=|link=]] | text = ''This file was uploaded by the photographer or author.'' }} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[file:Image-x-generic.svg|40px|alt=|link=]]
| text = ''This file was uploaded by the photographer or author.''
}}
<noinclude>{{Documentation}}</noinclude>
ff314b3c574d2b98ffc4c7c42ab06e233af1e552
563
562
2023-03-19T23:45:33Z
BlindCartographer
2
Protected "[[Template:Self]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[file:Image-x-generic.svg|40px|alt=|link=]]
| text = ''This file was uploaded by the photographer or author.''
}}
<noinclude>{{Documentation}}</noinclude>
ff314b3c574d2b98ffc4c7c42ab06e233af1e552
Template:Fair use
10
204
564
2023-03-19T23:51:55Z
BlindCartographer
2
Created page with "{{Imbox | type = license | image = [[File:PD-icon.svg|60px|alt=|link=]] | text = ''The [[Project:Copyrights|copyright]] holder of this image allows anyone to use it for any purpose including unrestricted redistribution, commercial use, and modification.''<br> <small>This template should not be used for new images. If the image requires attribution, use {{Tlx|Attribution}}. If this is your own work, use {{Tlx|Self}}.</small> }} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[File:PD-icon.svg|60px|alt=|link=]]
| text = ''The [[Project:Copyrights|copyright]] holder of this image allows anyone to use it for any purpose including unrestricted redistribution, commercial use, and modification.''<br>
<small>This template should not be used for new images. If the image requires attribution, use {{Tlx|Attribution}}. If this is your own work, use {{Tlx|Self}}.</small>
}}
<noinclude>{{Documentation}}</noinclude>
8baf3ca17983b41e16e64ee39373308d79a97f6e
Template:Wikimedia commons
10
205
565
2023-03-19T23:56:47Z
BlindCartographer
2
Created page with "{{Imbox | type = license | image = [[File:Commons-logo.svg|45px|alt=|link=]] | text = ''This content is a part of the Wikimedia Foundation. Therefore, this content is free for anyone to use. For more information on Wikimedia and it's work, see [https://meta.wikimedia.org/wiki/Wikimedia_Foundation here].'' }} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[File:Commons-logo.svg|45px|alt=|link=]]
| text = ''This content is a part of the Wikimedia Foundation. Therefore, this content is free for anyone to use. For more information on Wikimedia and it's work, see [https://meta.wikimedia.org/wiki/Wikimedia_Foundation here].''
}}
<noinclude>{{Documentation}}</noinclude>
11a59932369cd3969179269ce7c7691c0a011677
566
565
2023-03-19T23:57:15Z
BlindCartographer
2
Protected "[[Template:Wikimedia commons]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[File:Commons-logo.svg|45px|alt=|link=]]
| text = ''This content is a part of the Wikimedia Foundation. Therefore, this content is free for anyone to use. For more information on Wikimedia and it's work, see [https://meta.wikimedia.org/wiki/Wikimedia_Foundation here].''
}}
<noinclude>{{Documentation}}</noinclude>
11a59932369cd3969179269ce7c7691c0a011677
Template:PD
10
206
567
2023-03-19T23:59:41Z
BlindCartographer
2
Created page with "{{Imbox | type = license | image = [[File:PD-icon.svg|60px|alt=|link=]] | text = ''This file has been released into the public domain by the [[Project:Copyrights|copyright]] holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide.'' }} <noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
{{Imbox
| type = license
| image = [[File:PD-icon.svg|60px|alt=|link=]]
| text = ''This file has been released into the public domain by the [[Project:Copyrights|copyright]] holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide.''
}}
<noinclude>{{Documentation}}</noinclude>
8f280351a52132d2d5fd93942255fc45bc5d384c
MediaWiki:Licenses
8
207
568
2023-03-20T00:01:50Z
BlindCartographer
2
Created page with "*Attribution|Needs attribution *Self|I created this image myself *Fair use|The copyright holder allows anybody to use this image *Wikimedia commons|I got this from Wikipedia or another Wikimedia project *PD|This image is in the public domain"
wikitext
text/x-wiki
*Attribution|Needs attribution
*Self|I created this image myself
*Fair use|The copyright holder allows anybody to use this image
*Wikimedia commons|I got this from Wikipedia or another Wikimedia project
*PD|This image is in the public domain
5c57ea0ccadf05b147950d21163cc0c2963d24c1
User:BlindCartographer
2
5
569
322
2023-03-20T01:04:32Z
BlindCartographer
2
wikitext
text/x-wiki
{{Userbox group
|title=My userboxes
|collapse=0
|userboxes=
{{Userbox wiki manager}}
{{Userbox bureaucrat}}
{{Userbox administrator}}
}}
Heyo, I'm <span title="My real name is Wayne Shepherd">'''BlindCartographer'''</span>, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here. Feel free to contact me if you need help with anything!
== About Me ==
I started this wiki on February 6th, 2023, while laying in my bed post-surgery. I had been wanting to find a comprehensive (and encyclopedic) hub for basically everything related to game development, that was engine agnostic. I couldn't find one, so I decided to start one myself. I thought that the best and easiest way would be via a wiki platform due to my experience editing and administrating wikis, and I chose [[meta:Miraheze|Miraheze]] specifically because I hadn't used it before and saw how user-friendly and less restrictive it was compared to Fandom.
7f31f6f3c1fcb8dcc28a497a84827288525f141a
577
569
2023-03-20T02:26:00Z
BlindCartographer
2
wikitext
text/x-wiki
{{Userbox group
|title=My userboxes
|collapse=0
|userboxes=
{{Userbox wiki manager}}
{{Userbox bureaucrat}}
{{Userbox administrator}}
{{Userbox info freedom}}
}}
Heyo, I'm <span title="My real name is Wayne Shepherd">'''BlindCartographer'''</span>, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here. Feel free to contact me if you need help with anything!
== About Me ==
I started this wiki on February 6th, 2023, while laying in my bed post-surgery. I had been wanting to find a comprehensive (and encyclopedic) hub for basically everything related to game development, that was engine agnostic. I couldn't find one, so I decided to start one myself. I thought that the best and easiest way would be via a wiki platform due to my experience editing and administrating wikis, and I chose [[meta:Miraheze|Miraheze]] specifically because I hadn't used it before and saw how user-friendly and less restrictive it was compared to Fandom.
05ef9d0e3a44778247ff07bfbac09f5c33059f5c
MediaWiki:Abusefilter-intro
8
35
570
385
2023-03-20T01:09:40Z
BlindCartographer
2
wikitext
text/x-wiki
Welcome to the Abuse Filter management interface. The Abuse Filter is an automated software mechanism of applying automatic heuristics to all actions. This interface shows a list of defined filters, and allows them to be modified.
Using the Abuse Filter, authorized users can configure a wide range of tests, which may help identify and prevent potentially harmful edits and other activities before they are added to the wiki, and the automatic actions to be taken.
Important:
* Make sure you are familiar with the [[GDW:P|wiki rules and policies]].
* Keep an eye on the log.
* Check for any false positives.
* Use the test filters before creating it individually.
Please be careful when editing the abuse filters, as even a single typo can potentially disrupt the editing of thousands of legitimate contributors. It is strongly recommended that you test your filters first before you enable any actions. If you are not sure about something, please ask for help.
If you cause problems, you may have your abuse filter editor permission revoked.
cfeea88e6ea7d7316fd203a35242b9467e42022e
Category:Stubs
14
208
571
2023-03-20T01:33:03Z
BlindCartographer
2
Created page with "A list of stubs on the {{SITENAME}}."
wikitext
text/x-wiki
A list of stubs on the {{SITENAME}}.
d321476dcc6794a56c65783359007575cbbbe3cf
Game Development Wiki:Editing manual
4
157
572
449
2023-03-20T01:48:36Z
BlindCartographer
2
wikitext
text/x-wiki
{{Policy page}}
{{Shortcut|{{No redirect|GDW:EM|GDW:EM}}
}}
Here on the [[GDW:ABT|Game Development Wiki]], we have certain standards and editing customs that should be followed by every editor. This page documents said customs and is a how-to guide on making good and safe edits on the wiki. This guide focuses on edits made in '''source editor''' as it is much neater, and as such all if not most edits should be made in source editor. This guide also goes hand in hand with the [[GDW:P|wiki rules]].
== Page Creation ==
Before creating a page, please make it on your [[Special:MyPage/Sandbox|sandbox]] page beforehand to make any further edits before fully releasing it.
=== Page Titles ===
Titles for pages should only have the first word capitalized (except for certain instances), excluding the namespace of the page.
The first instance of the page title on any given page should be in '''bold'''.
== General Guidelines ==
#'''This is a primarily English-speaking wiki'''. All pages and edits must be written in American English. Writing words in the style of British English out of habit will not be punished, but it will be reverted. This is to ensure that the writing on articles remain consistent. Pages should never be written or changed to be translated in another language. This will be reverted. Users of other languages are encouraged to use translating tools such as a translation software to read the pages.
#*Examples: <u>favorite</u> over favourite, <u>gray</u> over grey, <u>paralyze</u> over paralyse, <u>defense</u> over defence.
#'''Remain in 3rd person'''. Do not use personal pronouns like "I" or "me" or any words that give attention to the editors. Do not use "you" or "we" when referring to readers either.
#'''Slang words should rarely be used'''. In almost all situations, formal language is expected to be used when writing or describing things as the wiki aims to be informative. Do not use slang words unless it is in a direct quote.
#'''Keep it simple'''. Strive to make the wiki understandable for everyone without having to refer to a dictionary every other sentence. Use simple descriptions, understandable vocabulary and an easy-to-follow structuring that smoothly leads one sentence to the next. This does not mean editors cannot be descriptive or use synonyms to avoid repeating the same word over and over, but remember that word choice matters. Simplicity goes a long way to make reading through an article more enjoyable but variety helps make it interesting too.
#'''Keep a neutral point of view'''. All articles should remain as neutral as possible. Do not word anything in a page in a manner that could possibly inject personal biases or viewpoints to the subject. Remain objective as much as possible to present an article's subject fairly and reliably without editorial bias.
== Infoboxes ==
Infoboxes are the rectangular boxes on the right of articles that contain various information. Different infoboxes exist for different things, such as {{Tlx|Infobox programming language}} and {{Tlx|Infobox game engine}}. Almost all main articles should have infoboxes, but not every single one needs them, albeit in rare circumstances.
Most of the fields in an infobox should be filled, but if you do not have the information or the info is unnecessary, said info may not need to be added.
== Templates ==
Templates are featured on pages when they are fit. They come in many different shapes and forms, and sometimes have fields that can be filled in. For example; {{Tlx|Delete|reason for deletion}}. A few of the most often used templates and their meaning will be presented below:
*{{Tlx|Stub}} - For short pages lacking in information (a byte count of <span class="mw-plusminus-pos">1,200</span>-<span class="mw-plusminus-pos">2,400</span>)
*{{Tlx|Delete}} - For pages that break the rules, have under 1,200 bytes, heavily violate the editing manual, etc. Pages with under 1,000 bytes have 24 hours to gain enough bytes before deletion.
*{{Tlx|Cleanup}} - For pages that violate the editing tutorial in a non-extreme way. If a page stays a candidate for cleanup for too long, it may become a candidate for deletion.
== Categories ==
Do not add unapproved categories or random and irrelevant categories to pages. A full list of categories can be found at [[Special:Categories]]. New categories can be proposed [[Project:Requests for categories|here]].
== Talk Pages ==
Every user should always sign their messages by putting four tildes (<nowiki>~~~~</nowiki>) at the end of the message. You should reply to message by either leaving a response on the messengers talk page, or by replying on your own wall.
== Use of Wikipedia ==
We do not allow the direct copy and pasting or plagiarism of wikipedia articles or articles from other wikis. Using information provided in said articles is acceptable, but plagiarism is not.
== Other editing manuals ==
* [[Project:Editing manual/Tutorial manual|Tutorial article manual]]
* [[Project:Editing manual/Voting guide|Guide on voting]]
[[Category:{{SITENAME}}]]
2acaeca0486b623fb3291a0f45fe46a87bda4180
Template:Userbox vandalism reverter
10
209
573
2023-03-20T02:03:24Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Nuvola search person.png|43px|link=Project:Administrators]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info-background = #DFE8FF | logo-background = #b5caff | border-color = | info = This user likes to searches for vandalism in articles and revert them. }} </span> <noinclude>[[Category:Userboxes]]</noinclude> <includeonly>[[Category:Adminstrators]]</includeonly>"
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Nuvola search person.png|43px|link=Project:Administrators]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info-background = #DFE8FF
| logo-background = #b5caff
| border-color =
| info = This user likes to searches for vandalism in articles and revert them.
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
<includeonly>[[Category:Adminstrators]]</includeonly>
902c354452856decfc797a528d2c782530b61c31
574
573
2023-03-20T02:03:39Z
BlindCartographer
2
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Nuvola search person.png|43px|link=Project:Administrators]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info-background = #DFE8FF
| logo-background = #b5caff
| border-color =
| info = This user likes to searches for vandalism in articles and revert them.
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
29eaf05654aa1d1320a11429c20c179e1ec1b521
Category:Userboxes
14
210
575
2023-03-20T02:03:58Z
BlindCartographer
2
Created page with "The list of all userboxes on the {{SITENAME}}."
wikitext
text/x-wiki
The list of all userboxes on the {{SITENAME}}.
0511011f5db091f3582076a72094ec00731eba14
Template:Userbox info freedom
10
211
576
2023-03-20T02:07:14Z
BlindCartographer
2
Created page with "{{Userbox |border-c = #000 |border-s = 1 |id-c = black |id-s = 12 |id-fc = #000 |info-c = black |info-s = 8 |info-fc = white |info-a = center |id = [[File:PD-icon.svg|45px|link=]] |info = This user believes in freedom of <b>all types of information</b> for all. }}<noinclude> [[Category:Userboxes]] </noinclude>"
wikitext
text/x-wiki
{{Userbox
|border-c = #000
|border-s = 1
|id-c = black
|id-s = 12
|id-fc = #000
|info-c = black
|info-s = 8
|info-fc = white
|info-a = center
|id = [[File:PD-icon.svg|45px|link=]]
|info = This user believes in freedom of <b>all types of information</b> for all.
}}<noinclude>
[[Category:Userboxes]]
</noinclude>
b586b03eda40139b5fe8116cfb4ab3ce3cf18646
Module:Message box/ombox.css
828
81
578
201
2023-03-20T17:11:31Z
BlindCartographer
2
sanitized-css
text/css
/* {{pp|small=y}} */
.ombox {
margin: 4px 0;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
/* For the "small=yes" option. */
.ombox.mbox-small {
font-size: 88%;
line-height: 1.25em;
}
.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ombox-delete {
border: 2px solid #b32424; /* Red */
}
.ombox-note {
border: 1px solid #3366CC; /* Blue */
}
.ombox-content {
border: 1px solid #f28500; /* Orange */
}
.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
.ombox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.9em;
width: 100%;
}
.ombox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.ombox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ombox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ombox .mbox-invalid-type {
text-align: center;
}
@media (min-width: 720px) {
.ombox {
margin: 4px 10%;
}
.ombox.mbox-small {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
width: 238px;
}
}
0cb724ff697fd930321bd501a960e945bd8d64b7
Module:Message box/configuration
828
19
579
435
2023-03-20T17:13:31Z
BlindCartographer
2
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
},
wikinotice = {
class = 'ambox-wikinotice',
image = 'Site-Icon.png'
},
void = {
class = 'ambox-void',
image = 'Ambox padlock red.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css'
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css'
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
},
note = {
class = 'ombox-note',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
460d002b011eb07455e0275007eeba92488a508b
Template:Mbox/styles.css
10
79
580
436
2023-03-20T17:18:09Z
BlindCartographer
2
sanitized-css
text/css
/** @source http://en.wikipedia.org/wiki/MediaWiki:Common.css | 2020-02-03 */
/** [[Module:Message box]] */
/*
* WARNING
* Some wikis use the styles located here in their local CSS with an import
* directive. Do not remove classes from this page until those wikis have
* transitioned to TemplateStyles. MediaWiki wiki uses TemplateStyles and does
* not load this gadget; see Module:Message box for more details.
*/
/** NOTE: These do not include .messagebox styles, which are long-deprecated. */
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
/* @noflip */
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length */
}
td.mbox-image { /* The left image cell */
border: none;
/* @noflip */
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
/* @noflip */
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
/* @noflip */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
/* @noflip */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
/* @noflip */
border-left: 10px solid #36c; /* Blue */
}
table.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
table.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
table.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
table.ambox-wikinotice {
/* @noflip */
border-left: 10px solid #008000; /* Green */
}
table.ambox-void {
/* @noflip */
border-left: 10px solid #000000; /* Black */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
display: block; /* Fix for webkit to force 100% width. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #36c; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.imbox-delete {
border: 3px solid #b32424; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #fc3; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #a2a9b1; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background-color: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1;
background-color: #dfe8ff; /* Default "notice" blue */
box-sizing: border-box;
}
table.cmbox-notice {
background-color: #d8e8ff; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b32424; /* Red */
background-color: #ffdbdb; /* Pink */
}
table.cmbox-delete {
background-color: #ffdbdb; /* Pink */
}
table.cmbox-content {
background-color: #ffe7ce; /* Orange */
}
table.cmbox-style {
background-color: #fff9db; /* Yellow */
}
table.cmbox-move {
background-color: #e4d8ff; /* Purple */
}
table.cmbox-protection {
background-color: #efefe1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #a2a9b1; /* Default "notice" gray */
background-color: #f8f9fa;
box-sizing: border-box;
}
table.ombox-notice {
border: 1px solid #a2a9b1; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.ombox-delete {
border: 2px solid #b32424; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #fc3; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #a2a9b1; /* Gray-gold */
}
table.ombox-note {
border: 1px solid #3366CC; /* Blue */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background-color: #f8eaba;
min-width: 80%;
box-sizing: border-box;
}
.tmbox.mbox-small {
min-width: 0; /* reset the min-width of tmbox above */
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
width: 100%; /* For Safari and Opera */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b32424; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #fc3; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #a2a9b1;
background-color: #f8f9fa; /* Default "system" gray */
box-sizing: border-box;
}
table.fmbox-system {
background-color: #f8f9fa;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background-color: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon,
div.titleblacklist-warning,
div.locked-warning {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background-color: #ffdbdb;
padding: 0.25em 0.9em;
box-sizing: border-box;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
html body.mediawiki .mbox-small { /* For the "small=yes" option. */
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin: 4px 0 4px 1em;
box-sizing: border-box;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */
/* @noflip */
margin: 4px 1em 4px 0;
box-sizing: border-box;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
/* Style for compact ambox */
/* Hide the images */
.compact-ambox table .mbox-image,
.compact-ambox table .mbox-imageright,
.compact-ambox table .mbox-empty-cell {
display: none;
}
/* Remove borders, backgrounds, padding, etc. */
.compact-ambox table.ambox {
border: none;
border-collapse: collapse;
background-color: transparent;
margin: 0 0 0 1.6em !important;
padding: 0 !important;
width: auto;
display: block;
}
body.mediawiki .compact-ambox table.mbox-small-left {
font-size: 100%;
width: auto;
margin: 0;
}
/* Style the text cell as a list item and remove its padding */
.compact-ambox table .mbox-text {
padding: 0 !important;
margin: 0 !important;
}
/* Allow for hiding text in compact form */
.compact-ambox .hide-when-compact {
display: none;
}
84a9276f81596a0112ac4570b1df5a1a063d7a0e
Template:Copyright page
10
198
581
550
2023-03-20T17:18:20Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ombox
|type=note
|image=[[File:Ambox copyright blue.svg|45px|link=Project:Copyrights]]
|text=<center>'''This {{{ns|page}}} concerns legal or [[Project:Copyrights|wiki copyright policies.]]'''</center>
The content of this {{{ns|page}}} details and documents information relating to copyright laws and policies that are used on the {{SITENAME}}. Changes to the information pertaining to copyright proceedings should not be changed unless the policy or law changes.
}}
<noinclude>[[Category:Templates]]</noinclude>
ed0feb411e791c6ea002c6716d5a652bebd5a43f
Template:MP-Main
10
38
582
546
2023-03-20T19:18:02Z
BlindCartographer
2
wikitext
text/x-wiki
{{Nbox
|border=#2C670F
|background=#F8FFF5
|header=<div style="font-size:180%; font-family: Righteous">'''Welcome to the Game Development Wiki!'''</div>
|text=The '''Game Development Wiki''' (better known as the '''Gamedev wiki''') is a collaborative encyclopedia used to store and collect knowledge about the past, present, and future of game development.
Before starting, please read the [[GDW:P|Rules]] and [[GDW:EM|Editing Manual]]. Thank you!
*Have a question? Visit the [[Special:WikiForums|Forums]]!
*Have something to report to the admins? Visit the [[Project:Administrator Noticeboard|Administrator Noticeboard]].
*Want to see who the administrators are? Find out [[project:Administrators|here]].
*Looking for something to do? See what's happening down at the [[Project:Community portal|Community portal]].
*Want to see what's happened at the wiki recently? See the '''[[Special:RecentChanges|RecentChanges]]''' page.
''We are NOT a source of advertisement, promotion, or anything of the sort. We are a wiki, a place to store information. We do not accept low-quality articles or posts that exist solely to advertise.''
<div style="text-align:right;">[[Special:CreatePage|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Create an article</span>]] [[Special:Random|<span class="mw-ui-button mw-ui-progressive mw-ui-small">Random page</span>]]</div>
}}
ab0fcd66c3220f8952a9a7d327271b6818026715
Module:Babel
828
212
583
2023-03-20T19:58:10Z
BlindCartographer
2
Created page with "local p = {} local getArgs local function showUserbox(frame, v, nocat) local maybeNocat = '' if nocat then maybeNocat = '|nocat=yes' end return frame:preprocess('{{User '..v..maybeNocat..'}}') end function p.main(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end local args = getArgs(frame, {wrappers = 'Template:Babel'}) local ret = mw.html.create('table') :attr('role', 'presentation') :addClass('userboxes') :css( {..."
Scribunto
text/plain
local p = {}
local getArgs
local function showUserbox(frame, v, nocat)
local maybeNocat = ''
if nocat then
maybeNocat = '|nocat=yes'
end
return frame:preprocess('{{User '..v..maybeNocat..'}}')
end
function p.main(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame, {wrappers = 'Template:Babel'})
local ret = mw.html.create('table')
:attr('role', 'presentation')
:addClass('userboxes')
:css( {
float = args.align or 'right',
['margin-left'] = (args.left or '1') .. 'em',
['margin-bottom'] = (args.bottom or '0') .. 'em',
width = (args.width or '248') .. 'px',
clear = args.align or 'right',
color = args.textcolor or '#000000',
border = (args.bordercolor or '#99B3FF') .. ' solid ' .. (args.solid or 1)..'px'
} )
local nocat = args.nocat and string.lower(args.nocat) == 'yes'
if args.shadow and string.lower(args.shadow) == 'yes' then
ret:css({ ['box-shadow'] = '0 2px 4px rgb(0,0,0,0.2)' })
end
ret:cssText( args['extra-css'] or '' )
local color = args.color or 'inherit'
local row1 = ret:tag('tr')
local row2 = ret:tag('tr')
local row3 = ret:tag('tr')
local body_cells = row2:tag('td')
:css('vertical-align', 'middle !important')
local userboxes
-- Special message for when first argument is blank; otherwise treat it as normal
if args[1] and args[1]:find('%S') then
userboxes = showUserbox(frame, args[1], nocat)
else
userboxes = args.noboxestext or "''You haven't set up any languages. Please see [[Template:Babel/doc]] for help.''"
end
body_cells:wikitext(userboxes)
-- "remove" args[1] so it isn't looked at in the loop
-- table.remove(args,1) doesn't produce desired result
args[1] = ''
-- Keep track of how many columns are in this table
local col_span = 1
for _, v in ipairs( args ) do
-- ! indicates a new cell should be created
if v:find('%S') and v ~= '!' then
body_cells:wikitext( showUserbox(frame, v, nocat) )
-- Recycling body_cells for <td>
elseif v and v == '!' then
col_span = col_span + 1
body_cells:done()
body_cells = row2:tag('td')
end
end
row1:tag('th')
:css({ ['background-color'] = color,
['text-align'] = 'center' })
:attr('colspan',col_span)
:done()
row3:tag('td')
:css({ ['background-color'] = color,
['text-align'] = 'center' })
:attr('colspan',col_span)
:done()
if args['special-boxes'] then
body_cells:wikitext(args['special-boxes'])
end
body_cells:done()
return tostring(ret)
end
return p
564af4a85e6b02721adfc064906c992922a093bb
Template:Babel
10
213
584
2023-03-20T19:59:06Z
BlindCartographer
2
Created page with "{{#invoke:Babel|main}}<noinclude> {{Documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Babel|main}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
11ad8c706dcedbfd244a9cf84a35e442e313a8dc
Template:UsernameBlock
10
214
585
2023-03-20T20:34:20Z
BlindCartographer
2
Created page with "{{Tmbox |image = [[File:Stop x nuvola.svg|45px]] |text = '''An editor has suggested that this [[Project:Policy#Usernames|choice of username]] may be inappropriate. The username appears to be misleading, profane, offensive, disruptive, promotional or suggests that you do not wish to improve articles or other pages on the wiki. It is possible that an [[Project:Administrators|administrator]] may decide to [[Project:Policy/Blocking policy|block]] this account for that reason..."
wikitext
text/x-wiki
{{Tmbox
|image = [[File:Stop x nuvola.svg|45px]]
|text = '''An editor has suggested that this [[Project:Policy#Usernames|choice of username]] may be inappropriate. The username appears to be misleading, profane, offensive, disruptive, promotional or suggests that you do not wish to improve articles or other pages on the wiki. It is possible that an [[Project:Administrators|administrator]] may decide to [[Project:Policy/Blocking policy|block]] this account for that reason.''' Please discuss this here on your '''talk page'''.
}}<noinclude>
{{Documentation}}
[[Category:User block templates|{{PAGENAME}}]]
</noinclude>
5903e2283a9d205c33b9388409dad38c7d9ffffa
Game Development Wiki:Blocking policy
4
215
586
2023-03-20T20:36:01Z
BlindCartographer
2
Redirected page to [[Game Development Wiki:Policy/Blocking policy]]
wikitext
text/x-wiki
#REDIRECT [[Project:Policy/Blocking policy]]
bb63c3cfb44e887c4dd1b3e981f3478fc8036626
587
586
2023-03-20T20:36:11Z
BlindCartographer
2
Protected "[[Game Development Wiki:Blocking policy]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
#REDIRECT [[Project:Policy/Blocking policy]]
bb63c3cfb44e887c4dd1b3e981f3478fc8036626
Template:Ivmbox
10
216
588
2023-03-20T20:51:24Z
BlindCartographer
2
Created page with "<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}"> {{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{{{|safesubst:}}}#invoke:InfoboxImage|Infobox..."
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{{{|safesubst:}}}#invoke:InfoboxImage|InfoboxImage|image={{{image|{{{2}}}}}}|size={{{imagesize|25px}}}|maxsize=100px|link={{{image link|}}}|alt={{{image alt|}}}}}</div>}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
d9b69dfe3049dd31ff1b91e3acbde0de087bc910
589
588
2023-03-20T20:51:34Z
BlindCartographer
2
Protected "[[Template:Ivmbox]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{{{|safesubst:}}}#invoke:InfoboxImage|InfoboxImage|image={{{image|{{{2}}}}}}|size={{{imagesize|25px}}}|maxsize=100px|link={{{image link|}}}|alt={{{image alt|}}}}}</div>}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
d9b69dfe3049dd31ff1b91e3acbde0de087bc910
590
589
2023-03-20T20:56:29Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{image|{{{2}}}}}}}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
0b452c7b1fc77d991e087b267e5971a77ebf54ee
591
590
2023-03-20T20:57:13Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{image|{{{2}}}}}}}}</div>
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
fdb24d8f8b80dffad2692af24ec3e59c74dac157
592
591
2023-03-20T20:57:32Z
BlindCartographer
2
Undo revision 591 by [[Special:Contributions/BlindCartographer|BlindCartographer]] ([[User talk:BlindCartographer|talk]])
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{image|{{{2}}}}}}}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
0b452c7b1fc77d991e087b267e5971a77ebf54ee
593
592
2023-03-20T20:58:01Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{{{|safesubst:}}}#invoke:InfoboxImage|InfoboxImage|image={{{image|{{{2}}}}}}|size={{{imagesize|25px}}}|maxsize=100px|link={{{image link|}}}|alt={{{image alt|}}}}}</div>}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
d9b69dfe3049dd31ff1b91e3acbde0de087bc910
594
593
2023-03-20T21:00:06Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{{{|safesubst:}}}#if:{{{image|{{{2|}}}}}}|<div class="ivmbox-image" style="padding-left:{{{p-l|1px}}}; padding-right:{{{p-r|0.5em}}}; flex: 1 0 {{{imagesize|25px}}}; max-width: 100px">{{{{{|safesubst:}}}#invoke:IvmBoxImage|IvmboxImage|image={{{image|{{{2}}}}}}|size={{{imagesize|25px}}}|maxsize=100px|link={{{image link|}}}|alt={{{image alt|}}}}}</div>}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
538df2c27abcb25859b22a28db43b18bada05431
595
594
2023-03-20T21:06:42Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{image|}}}
<div class="ivmbox-text">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
6b26cac0bb5ce55eea352d7de5e0598a7f3c18cd
596
595
2023-03-20T21:08:17Z
BlindCartographer
2
wikitext
text/x-wiki
<div class="ivmbox {{{{{|safesubst:}}}#if:{{{plainlinks|}}}|plainlinks}}" style="margin-bottom: 1em; border: 1px solid {{{border|#AAA}}}; background-color: {{{bg|ivory}}}; padding: 0.5em; display: flex; align-items: center; {{{extracss|}}}">
{{{image|}}}
<div class="ivmbox-text" style="padding-left: 0.5em;">
{{{text|{{{1}}}}}}
</div>
</div><noinclude>
{{Documentation}}
</noinclude>
039d93d42ba31cf1d4fe60a24ce21618edb8d070
Template:Blockeduser
10
217
597
2023-03-20T21:28:53Z
BlindCartographer
2
Created page with "{{Ivmbox |image= [[File:Stop_hand_nuvola.svg|45px|link=Project:Blocking policy]] |text= '''You have been temporarily blocked from the {{SITENAME}}.''' The reason you have been blocked is is ''"{{{rsn|reason}}}"''. If you think there are good reasons why you should be unblocked, you may request an unblock by first reading the [[Project:Policy/Blocking policy#Appeals|guide to appealing blocks]], then adding the following text to the bottom of your talk page: <code><nowiki>..."
wikitext
text/x-wiki
{{Ivmbox
|image= [[File:Stop_hand_nuvola.svg|45px|link=Project:Blocking policy]]
|text= '''You have been temporarily blocked from the {{SITENAME}}.''' The reason you have been blocked is is ''"{{{rsn|reason}}}"''. If you think there are good reasons why you should be unblocked, you may request an unblock by first reading the [[Project:Policy/Blocking policy#Appeals|guide to appealing blocks]], then adding the following text to the bottom of your talk page: <code><nowiki>{{Unblock|reason=Your reason here ~~~~}}.</nowiki></code> ~~<noinclude />~~
}}
<noinclude>
{{Documentation}}
[[Category:User block templates]]
</noinclude>
c17bf445c153e7a60e3a63b8007e72dd4439e627
599
597
2023-03-20T21:38:05Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ivmbox
|image= [[File:Stop_hand_nuvola.svg|45px|link=Project:Blocking policy]]
|text= '''You have been temporarily blocked from the {{SITENAME}}.''' The reason you have been blocked is is ''"{{{rsn|reason}}}"''. If you think there are good reasons why you should be unblocked, you may request an unblock by first reading the [[Project:Policy/Blocking policy#Block Appeals|guide to appealing blocks]], then adding the following text to the bottom of your talk page: <code><nowiki>{{Unblock|reason=Your reason here ~~~~}}.</nowiki></code> ~~<noinclude />~~
}}
<noinclude>
{{Documentation}}
[[Category:User block templates]]
</noinclude>
4c846deda55ce9c36d7dc76f7cfef79695355685
MediaWiki:Ipbreason-dropdown
8
218
598
2023-03-20T21:35:33Z
BlindCartographer
2
Created page with "*Common block reasons **Vandalism **Spam **Inserting false information **Removing content from pages **Spamming links to external sites **Inserting nonsense/gibberish into pages **Intimidating behavior/harassment **Abusing multiple accounts **Sockpuppet account **Sockpuppetry **Unacceptable username **General disruption **Edit-warring **Trolling **Impersonation **Extreme disruption **Repeated abuse **Underaged **Uploading graphic/explicit content **Inappropriate comments..."
wikitext
text/x-wiki
*Common block reasons
**Vandalism
**Spam
**Inserting false information
**Removing content from pages
**Spamming links to external sites
**Inserting nonsense/gibberish into pages
**Intimidating behavior/harassment
**Abusing multiple accounts
**Sockpuppet account
**Sockpuppetry
**Unacceptable username
**General disruption
**Edit-warring
**Trolling
**Impersonation
**Extreme disruption
**Repeated abuse
**Underaged
**Uploading graphic/explicit content
**Inappropriate comments
**Copyright violations
78ae42cf9520bf3780b448bc9768e0a6d7c5599b
Template:Biased article
10
140
600
391
2023-03-20T21:46:03Z
BlindCartographer
2
wikitext
text/x-wiki
{{Ambox
| type = content
| image = [[File:Ambox scales.svg|45px|link=Category:Biased articles]]
| text = <center>'''This article may be biased!'''</center>
This article may contain wording or false information biased towards a specific parties point of view. [{{fullurl:{{FULLPAGENAME}}|action=edit}} please correct the wording of this article] to make it more neutral.
}}
<includeonly>[[Category:Biased articles]]</includeonly>
<noinclude>{{Documentation}}
[[Category:Article management templates]]</noinclude>
5892146e543f3a536c7ef632c319d39070d5b42b
Game Development Wiki:Policy/Facts policy
4
219
601
2023-03-20T22:14:08Z
BlindCartographer
2
Created page with "{{Policy page}} [[File:Ambox scales.svg|50px|right|link=]] One of the core fundamentals of the {{SITENAME}} is our prioritization to keep our information and articles as truthful and unbiased as possible. Our '''Facts policy''' ensures all content on articles is '''factual''' and '''well sourced'''. This is critical as content can sometimes be sensitive, causing offense to many individuals are associated with the content. The {{SITENAME}} is a '''wiki''', which means pe..."
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox scales.svg|50px|right|link=]]
One of the core fundamentals of the {{SITENAME}} is our prioritization to keep our information and articles as truthful and unbiased as possible. Our '''Facts policy''' ensures all content on articles is '''factual''' and '''well sourced'''. This is critical as content can sometimes be sensitive, causing offense to many individuals are associated with the content. The {{SITENAME}} is a '''wiki''', which means personal opinion should not be used on wiki articles.
982a9b795ada4fb0a6cb294e621e5813768082a1
602
601
2023-03-20T22:14:19Z
BlindCartographer
2
Protected "[[Game Development Wiki:Policy/Facts policy]]": Important to wiki ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{Policy page}}
[[File:Ambox scales.svg|50px|right|link=]]
One of the core fundamentals of the {{SITENAME}} is our prioritization to keep our information and articles as truthful and unbiased as possible. Our '''Facts policy''' ensures all content on articles is '''factual''' and '''well sourced'''. This is critical as content can sometimes be sensitive, causing offense to many individuals are associated with the content. The {{SITENAME}} is a '''wiki''', which means personal opinion should not be used on wiki articles.
982a9b795ada4fb0a6cb294e621e5813768082a1
User:BlindCartographer
2
5
603
577
2023-03-22T01:10:27Z
BlindCartographer
2
wikitext
text/x-wiki
{{Userbox group
|title=My userboxes
|collapse=0
|userboxes=
{{Userbox wiki manager}}
{{Userbox bureaucrat}}
{{Userbox administrator}}
{{Userbox info freedom}}
}}
Heyo, I'm <span title="My real name is Wayne Shepherd">'''BlindCartographer'''</span>, the founder of this wiki, along with being a [[Project:Staff#Bureaucrat|bureaucrat]] and the wiki manager around here. Feel free to contact me if you need help with anything!
== About Me ==
I started this wiki on February 6th, 2023, while laying in my bed post-surgery. I had been wanting to find a comprehensive (and encyclopedic) hub for basically everything related to game development, that was engine agnostic. I couldn't find one, so I decided to start one myself. I thought that the best and easiest way would be via a wiki platform due to my experience editing and administrating wikis, and I chose [[meta:Miraheze|Miraheze]] specifically because I hadn't used it before and saw how user-friendly and less restrictive it was compared to Fandom.
== Pages I've Created ==
*Almost every single MediaWiki, Project, and Template page on the wiki.
*[[Gdscript]]
8e05f4b3573482b22e268428f9a1992d282f9d8e
Template:User wikiware upkeep
10
220
604
2023-03-25T22:37:29Z
BlindCartographer
2
Created page with "<span style="margin: auto;"> {{Userbox | id = [[File:Nuvola apps kfloppy.png|43px|link=]] | info-s = {{{info-s|{{{info-size|8}}}}}} | info-background = #DFE8FF | logo-background = #b5caff | border-color = | info = This user actively maintains the wiki software and database. }} </span> <noinclude>[[Category:Userboxes]]</noinclude>"
wikitext
text/x-wiki
<span style="margin: auto;">
{{Userbox
| id = [[File:Nuvola apps kfloppy.png|43px|link=]]
| info-s = {{{info-s|{{{info-size|8}}}}}}
| info-background = #DFE8FF
| logo-background = #b5caff
| border-color =
| info = This user actively maintains the wiki software and database.
}}
</span>
<noinclude>[[Category:Userboxes]]</noinclude>
67901d6eba0700a2f1883ead886c15bd8b7d4860
Game Development Wiki:Frequently Asked Questions
4
193
605
556
2023-07-15T03:33:36Z
BlindCartographer
2
wikitext
text/x-wiki
<tabs>
<tab name="General>
{{Shortcut|{{No redirect|GDW:FAQ|GDW:FAQ}}
}}
=== What is this place? ===
Welcome to the [[GDW:ABT|{{SITENAME}}]], a community built wiki dedicated to all things related to game development, that operates using the latest version of [[mw:MediaWiki|MediaWiki]] and is hosted on [[meta:Special:MyLanguage/Miraheze|Miraheze]].
=== How can I join? ===
In order to join the wiki, you must first [[Special:CreateAccount|create an account]]. After you've done that or you already have a Miraheze account, you've officially joined the wiki. Make sure to read the [[GDW:P|wiki rules]] and [[GDW:EM|editing manual]] before getting started.
You don't need an account to edit, however anonymous editing will have your username be displayed as your [[wikipedia:IP address|IP address]].
=== What can I expect to find here? ===
The main type of content we have are articles that document anything and everything related to game development, and [[Project:Tutorial articles|tutorial articles]] that offer comprehensive guides and advice for game development.
=== Can I add an article about my video game? ===
Unfortunately, we do not allow articles about individual games. However, if you own or are a member of an indie game development studio, you may add an article about your studio.
=== How old do I have to be to use this wiki? ===
You must be a minimum of 13 years old in order to edit or use the wiki. If you are found to be underage, you will be banned. It should be noted that you don't need to be 13 or older to read the wiki, only interact with it.
</tab>
<tab name="Editing">
=== How do I start editing? ===
In order to edit a page, you can click the "Edit" or "Edit source" buttons in the top right corner next to the search bar in order to begin editing a page. Please read the [[GDW:EM|editing manual]] and [[GDW:P|policies]] before you begin editing.
=== Can I create an article? ===
Sure! Anybody can. Just make sure you create it in your [[Special:MyPage/sandbox|user sandbox]] before posting it to the wiki. If it gets deleted, do not repost it. Instead, visit [[Project:Requests for undeletion|here]] instead.
</tab>
<tab name="Staff">
=== Where can I find the wiki staff? ===
You can find the list of wiki staff [[Project:Staff|here]].
</tab>
<tab name="Forums">
=== Why are the forums disabled? ===
Unfortunately, the forums are temporarily disabled due to a security exploit bug. The forums will remain disabled until the bug has been fixed.
=== Is there an alternative? ===
We currently have a [https://discord.gg/6y5ytRBK discord server] we encourage you to use for the purposes of wiki related discussion.
</tab>
<tab name="Other">
=== I've been blocked! What do I do? ===
If you've been blocked on the wiki, it was probably for a good reason. However, if you would like to appeal your block, and believe it was unfair, a mistake, or otherwise unneeded, you may leave an unblock request on your talk page (assuming you still have access to it) to be reviewed by an administrator. You can do so by adding <nowiki>{{Unblock|(insert reason here) ~~~~}}</nowiki> and replacing (insert reason here) with your reason.
For a more in-depth guide on block appeals, read [[Project:Policy/Blocking policy#Block Appeals|this]].
=== Do you have any social media, chat platforms, or other methods of contact? ===
At the moment we do not have any social media accounts or dedicated chat platforms such as Discord.
=== Do you have non-english versions of the wiki? ===
At the moment, the only version of the {{SITENAME}} is in english.
=== I have found something that violates the copyright policy ===
If you have found content on the wiki that violates the CC BY-SA 4.0 license or the [[Project:Copyrights|wiki copyright policy]], please report it to a [[Project:Moderation|moderator]], [[Project:Administrators|administrator]], or a [[Project:Staff#Bureaucrat|bureaucrat]] on their talk page. Make sure to do so by using the {{Tlx|Copyright takedown}} template.
</tab>
</tabs>
[[Category:{{SITENAME}}]]
794f587275ee0191269c2614dd445afe97991d76